java 網路程式設計中 TCP 實現檔案上傳
阿新 • • 發佈:2021-09-05
編寫程式碼
1,服務端接收檔案 TcpServerDemo02
package com.xiang.lesson02; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.ServerSocket; import java.net.Socket; //服務端接收檔案 public class TcpServerDemo02 { public static void main(String[] args) throws Exception { // 1,建立一個埠 建立一個服務 ServerSocket socket = new ServerSocket(9000); // 2,監聽客戶端的連線 Socket accept = socket.accept(); // 3,獲取輸入流 InputStream is = accept.getInputStream(); // 4,檔案輸出 FileOutputStream fos = new FileOutputStream(new File("res")); byte[] buffer = new byte[1024]; int len; while ((len=is.read(buffer))!=-1){ fos.write(buffer,0,len); } // 關閉資源 fos.close(); is.close(); accept.close(); socket.close(); } }
2,客戶端讀取檔案 TcpClientDemo02
package com.xiang.lesson02; import java.io.File; import java.io.FileInputStream; import java.io.OutputStream; import java.net.InetAddress; import java.net.Socket; import java.net.UnknownHostException; //客戶端讀取檔案; public class TcpClientDemo02 { public static void main(String[] args) throws Exception { //1, 建立一個socket 連線 Socket socket = new Socket(InetAddress.getByName("127.0.0.1"), 9000); // 2,建立一個輸出注 OutputStream os = socket.getOutputStream(); // 3,檔案流 讀取檔案 FileInputStream fis = new FileInputStream(new File("images.png")); // 4,寫出檔案 byte[] buffer = new byte[1024]; int len; while ((len = fis.read(buffer)) != -1) { os.write(buffer, 0, len); } // 5,關閉資源 fis.close(); os.close(); socket.close(); } }
3,執行結果
4, 注意;
如果把圖片放在src目錄下的話,會報錯,找不到檔案;
須放在想上根目錄下