使用Socket進行文件的傳輸

客戶端:

import java.io.*;
import java.net.Socket;

/**
 * @author coderchem
 * @create 2019-09-27 21:49
 */
public class Client {
    public static void main(String[] args) throws IOException {
        Socket socket = new Socket("localhost",9998) ;    //創建Socket
        InputStream inputStream  = new BufferedInputStream(new FileInputStream("xiangmushuoming.txt")) ;   //對於客戶端來說輸入文件用Input
        OutputStream outputStream = new BufferedOutputStream(socket.getOutputStream()) ;   //客戶端講文件輸出到socket中
        int len  = -1 ;
        byte[] bytes  = new byte[1024] ;  
            while ((len = inputStream.read(bytes))!=-1){    //內容輸入到bytes
            outputStream.write(bytes,0,len);   //bytes內如寫入socket
        }
        outputStream.close();
        inputStream.close();
        socket.close();
    }
}

服務器端:

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * @author coderchem
 * @create 2019-09-27 21:49
 */
public class Server {
    public static void main(String[] args) throws IOException {
        ServerSocket serverSocket = new ServerSocket(9998) ;   //創建ServerSocket  指定端口
        Socket client = serverSocket.accept();    //accept監聽 返回一個socket
        System.out.println("Server");
        InputStream inputStream = new BufferedInputStream(client.getInputStream());   //從socket裏讀取數據
        OutputStream outputStream = new BufferedOutputStream(new FileOutputStream("t.txt")) ;   //輸出到指定文件
        int len = -1 ;
        byte[] bytes = new byte[1024] ;
        while ((len = inputStream.read(bytes))!= -1){
            outputStream.write(bytes,0,len);
        }
        outputStream.close();
        inputStream.close();
        client.close();
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章