Java中的多线程服务器程序

nik*_*kos 5 java sockets network-programming

我正在尝试用Java编写多线程程序,其中服务器侦听来自客户端的连接并生成一个线程来修改每个客户端.我有:

while(true)
    {
        Socket s = server.accept();    
        ClientHandler ch = new ClientHandler(s);
        Thread t = new Thread(ch);
        t.start();  
    }
Run Code Online (Sandbox Code Playgroud)

我的问题是:每当它接受连接时

Socket s = server.accept();
Run Code Online (Sandbox Code Playgroud)

并开始执行以下代码行来创建线程等,在此期间从客户端请求连接会发生什么.它是否以某种方式排队,它将在下一个循环中得到服务,while(true)还是会被拒绝?

谢谢,尼科斯

Nik*_*sov 4

返回后,accept()TCP 握手完成,并且您有一个已连接的客户端套接字(s在您的代码中)。直到下一次调用accept()操作系统队列中的挂起连接请求。

例如,您可能想查看一些像这样的教程。