2016-03-02 19 views
1

我是新来的套接字编程,我有理解serversocket的问题。 假设我们创建这样一个ServerSocket:具有多个积压工作的服务器套接字如何工作?

loadbalancerSocket = new ServerSocket(port, 20); 
connection = loadbalancerSocket.accept(); 

再经过一些东西,写在它的缓冲区的东西:

BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(connection.getOutputStream())); 
       writer.write("Hello!"); 
       writer.flush(); 
       writer.close(); 

我的问题是:连接如何了解哪些客户应该得到的回应服务器?我们的积压是20,并且20个客户端可以同时连接到服务器套接字(据我所知)。

回答

2

在您的示例中,第一个连接的客户端获取响应。积压参数并不意味着可以并行连接的客户端的数量。这是等待接受连接的最大客户端数量。

ServerSocket没有连接到任何特定的客户端。连接的插座是从accept()返回的插座。如果您想要并行处理多个客户端,则必须多次拨打accept()并分别处理连接。例如,您可以为每个连接创建一个特殊线程。

accept()通常在循环中调用,并且从accept()返回的新创建的连接套接字通常会传递给负责特定客户端的处理程序。

+0

谢谢:) @Zaboj – user122434

相关问题