欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-15 20:35:05
...

一、服务端代码

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

三、客户端代码

同上一篇
相关标签: io java