Java學習筆記——Socket實現文件傳輸


我越是逃離,卻越是靠近你。

我越是背過臉,卻越是看見你。

我從你開始,

我在你結束。

 

需求:實現局域網下socket傳輸文件.

客戶端步驟:

1、建立與服務器的連接

2、創建client輸出流

3、創建輸入流,綁定本地文件

4、讀取文件后輸出給服務器

服務器端步驟:

1、啟動服務器

2、創建accept輸入流

3、創建輸出流綁定本地文件

4、讀取客戶端信息寫入本地文件

1.字節流傳輸文件.

 1 public class Client {
 2 
 3     public static void main(String[] args) throws IOException {
 4         Socket client = new Socket("192.168.0.112", 50000);
 5         OutputStream os = client.getOutputStream();
 6         FileInputStream fis = new FileInputStream("/home/yanshaochen/public/2017-05-06 15-12-02屏幕截圖.png");
 7         byte[] bytes = new byte[1024];
 8         int data;
 9         while((data = fis.read(bytes))!= -1){
10             os.write(bytes, 0, data);
11         }
12         fis.close();
13         client.close();
14         System.out.println("發送成功!");
15     }
16 }

 

 1 public class Server {
 2 
 3     public static void main(String[] args) throws Exception {
 4         ServerSocket server = new ServerSocket(50000);
 5         System.out.println("listening..");
 6         Socket accept = server.accept();
 7         InputStream is = accept.getInputStream();
 8         FileOutputStream fos = new FileOutputStream("d:\\download\\屏幕截圖.png");
 9         byte[] bytes = new byte[1024];
10         int data;
11         while((data = is.read(bytes))!=-1){
12             fos.write(bytes, 0, data);
13         }
14         fos.close();
15         server.close();
16 }

 

2.字符流傳輸文件txt.

 1 public class Client {
 2 
 3     public static void main(String[] args) throws IOException {
 4         
 5         Socket client = new Socket("192.168.0.112", 50000);
 6         OutputStream os = client.getOutputStream();
 7         Reader fr = new FileReader("/home/yanshaochen/public/zfsm.txt");
 8         BufferedReader br = new BufferedReader(fr);
 9         String buffer;
10         while((buffer = br.readLine())!= null){
11             buffer += "\r\n";
12             os.write(buffer.getBytes());
13         }
14         br.close();
15         client.close();
16         System.out.println("發送成功!");
17     }
18 }

 

 1 public class Server {
 2 
 3     public static void main(String[] args) throws Exception {
 4 
 5         ServerSocket server = new ServerSocket(50000);
 6         System.out.println("listening..");
 7         Socket accept = server.accept();
 8         InputStream is = accept.getInputStream();
 9         FileWriter fw = new FileWriter("d:\\download\\zfsm.txt");
10         byte[] bytes = new byte[1024];
11         int data;
12         while((data = is.read(bytes)) != -1){
13             fw.write(new String(bytes, 0, data));
14         }
15         fw.close();
16         server.close();
17     }
18 
19 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM