TCP -- 利用字节流实现网络中数据传输(2) -- 多线程处理多客户端请求

一、服务端代码

public class MyServer {
    
    
    public static void main(String[] args) throws IOException {
    
    
        // 1、准备服务 ip:port
        ServerSocket serverSocket = new ServerSocket(8888);
        System.out.println("服务启动成功!");
        // 阻塞监听
        while(true){
    
    
            Socket socket = serverSocket.accept();
            // 启用线程处理socket
            new Thread(new ServerThread(socket)).start();
        }
    }
}

二、服务端处理socket的线程代码

public class ServerThread implements Runnable {
    
    
    private Socket socket;

    public ServerThread(Socket socket){
    
    
        this.socket = socket;
    }

    @Override
    public void run() {
    
    
        // 处理socket
        InputStream inputStream = null;
        try {
    
    
            inputStream = socket.getInputStream();
            byte[] bytes = new byte[1024];
            int length;
            while ((length = inputStream.read(bytes)) != -1){
    
    
                System.out.println("服务端收到:"+new String(bytes));
            }
        } catch (IOException e) {
    
    
            e.printStackTrace();
        } finally {
    
    
            // 关闭流
            try {
    
    
                inputStream.close();
            } catch (IOException e) {
    
    
                e.printStackTrace();
            }
        }
    }
}

三、客户端代码

同上一篇

猜你喜欢

转载自blog.csdn.net/m0_46218511/article/details/107720086