tcp文件上传--多个客户端
生活随笔
收集整理的這篇文章主要介紹了
tcp文件上传--多个客户端
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.client
public static void main(String[] args) throws IOException {// 創建客戶端Socket對象Socket s = new Socket("192.168.12.92", 11111);// 封裝文本文件// BufferedReader br = new BufferedReader(new FileReader(// "InetAddressDemo.java"));BufferedReader br = new BufferedReader(new FileReader("ReceiveDemo.java"));// 封裝通道內流BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));String line = null;while ((line = br.readLine()) != null) { // 阻塞 bw.write(line);bw.newLine();bw.flush();}// Socket提供了一個終止,它會通知服務器你別等了,我沒有數據過來了 s.shutdownOutput();// 接收反饋BufferedReader brClient = new BufferedReader(new InputStreamReader(s.getInputStream()));String client = brClient.readLine(); // 阻塞 System.out.println(client);// 釋放資源 br.close();s.close();}?
2.server
public static void main(String[] args) throws IOException {// 創建服務器Socket對象ServerSocket ss = new ServerSocket(11111);while (true) {Socket s = ss.accept();new Thread(new UserThread(s)).start();}}3.UserThread
public class UserThread implements Runnable {private Socket s;public UserThread(Socket s) {this.s = s;}@Overridepublic void run() {try {// 封裝通道內的流BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));// 封裝文本文件// BufferedWriter bw = new BufferedWriter(new// FileWriter("Copy.java"));// 為了防止名稱沖突String newName = System.currentTimeMillis() + ".java";BufferedWriter bw = new BufferedWriter(new FileWriter(newName));String line = null;while ((line = br.readLine()) != null) { // 阻塞 bw.write(line);bw.newLine();bw.flush();}// 給出反饋BufferedWriter bwServer = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));bwServer.write("文件上傳成功");bwServer.newLine();bwServer.flush();// 釋放資源 bw.close();s.close();} catch (IOException e) {e.printStackTrace();}}}?
轉載于:https://www.cnblogs.com/csslcww/p/9208385.html
總結
以上是生活随笔為你收集整理的tcp文件上传--多个客户端的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vmware的3种网络模式
- 下一篇: IDEA使用Maven打包时如何去掉测试