package liu.net.udpupload;import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.Socket;import java.net.UnknownHostException;public class UploadClient {public static void main(String[] args) throws UnknownHostException, IOException {/*上传文本的客户端。读取本地文本数据,发送给服务端,服务端接收完毕后,回馈“上传成功” */System.out.println("客户端启动。。。");//客户端 socketSocket s = new Socket("127.0.0.1",8890);//1.确定数据源,本地文件BufferedReader bufr = new BufferedReader(new FileReader("text.txt"));//2.确定目的地 socket 输出流//BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));PrintWriter pw = new PrintWriter(s.getOutputStream(),true);String line = null;while((line=bufr.readLine())!=null){pw.println(line);}//用socket的禁用流输出方法,告诉服务端文件传说完成,否则服务端不知道文件传输完成s.shutdownOutput();//3.通过 socket 读取服务端返回的数据BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));String lineIn = bufIn.readLine();System.out.println(lineIn);//关闭bufr.close();s.close();System.out.println("客户端关闭成功");}}
package liu.net.udpupload;import java.io.BufferedReader;import java.io.FileWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;public class UploadServer {public static void main(String[] args) throws IOException {//上传文本到服务端,服务端接收数据并存储到文件中,服务端接收完毕后,服务端回馈“接收成功”System.out.println("服务端启动。。。");//1.服务端对象ServerSocket ss= new ServerSocket(8890);//2.获取客户端Socket s = ss.accept();//3.获取读取流BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));//4.确定目的文件PrintWriter pw = new PrintWriter(new FileWriter("server.txt"),true);//5.频繁读写String line = null;while((line=bufIn.readLine())!=null){pw.println(line);}//6.给客户端返回信息PrintWriter out = new PrintWriter(s.getOutputStream(),true);out.println("上传成功");//7.关闭资源pw.close();s.close();ss.close();System.out.println("服务端成功关闭");}}
TCP 上传文件
原文地址:http://blog.51cto.com/11359581/2047979