使用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();
    }
}

 

你可能感兴趣的:(Java复习)