100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > TCP多线程实现文件上传

TCP多线程实现文件上传

时间:2019-11-01 04:44:20

相关推荐

TCP多线程实现文件上传

哎呀,我们还是直接放代码吧

客户端代码

package com.wangLuo;import java.io.*;import .Socket;/*** @author 林高禄* @create -06-01-10:24*/public class TCPClientDemo {public static void main(String[] args) throws IOException {Socket s = new Socket("192.168.1.55",10);BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));BufferedReader br = new BufferedReader(new FileReader("test//src//com//wangLuo//《国富论》全本.txt"));String line;while((line = br.readLine()) != null){bw.write(line);bw.newLine();bw.flush();}// 向服务端表明数据发送完毕s.shutdownOutput();BufferedReader br1 = new BufferedReader(new InputStreamReader(s.getInputStream()));System.out.println(br1.readLine());br.close();s.close();}}

服务端线程代码,这是主要的代码,线程处理写入文件操作,并且给客户端做出响应

package com.wangLuo;import java.io.*;import .Socket;/*** @author 林高禄* @create -06-01-10:28*/public class TCPServerDemoThread implements Runnable{private Socket s;private int count;public TCPServerDemoThread(Socket s, int count) {this.s = s;this.count = count;}@Overridepublic void run() {BufferedWriter bw = null;BufferedWriter bw1 = null;try {BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));bw = new BufferedWriter(new FileWriter("test//src//com//wangLuo//《国富论》全本copy【"+count+"】.txt"));String line;while((line = br.readLine()) != null){bw.write(line);bw.newLine();bw.flush();}bw1 = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));bw1.write("文件上传成功");bw1.newLine();bw1.flush();}catch (IOException e){e.printStackTrace();}finally {if(bw != null){try{bw.close();}catch (IOException e){e.printStackTrace();}}if(bw1 != null){try{bw1.close();}catch (IOException e){e.printStackTrace();}}if(s != null){try{s.close();}catch (IOException e){e.printStackTrace();}}}}}

服务端代码,while循环,每次客户端请求,就调用一次服务端线程,计数增加,这样一个客户端请求就是一个文件,不会造成文件覆盖。

package com.wangLuo;import java.io.IOException;import .ServerSocket;import .Socket;/*** @author 林高禄* @create -06-01-10:28*/public class TCPServerDemo {public static void main(String[] args) throws IOException {ServerSocket ss = new ServerSocket(10);int count = 0;while(true){count++;Socket s = ss.accept();System.out.println("count==="+count);new Thread(new TCPServerDemoThread(s,count)).start();}}}

代码完毕,指向服务端,再执行客户端,客户端每次请去就上传一个文件,服务端一直运行。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。