Java 具有多个待办事项的服务器套接字如何工作?
我是套接字编程新手,在理解serversocket方面有问题。 假设我们创建一个serversocket,如下所示:Java 具有多个待办事项的服务器套接字如何工作?,java,sockets,network-programming,serversocket,Java,Sockets,Network Programming,Serversocket,我是套接字编程新手,在理解serversocket方面有问题。 假设我们创建一个serversocket,如下所示: loadbalancerSocket = new ServerSocket(port, 20); connection = loadbalancerSocket.accept(); 然后在一些东西之后,在它的缓冲区中写一些东西: BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(connectio
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个客户端可以同时连接到服务器套接字(据我所知)。在您的示例中,第一个连接的客户端得到响应。backlog参数并不意味着可以并行连接的客户端数量。它是等待接受连接的最大客户端数
ServerSocket
未连接到任何特定客户端。连接的套接字是从accept()
返回的套接字。如果要并行处理多个客户端,必须多次调用accept()
并分别处理连接。例如,您可以为每个连接创建一个特殊线程
accept()
通常在循环中调用,从accept()
返回的新创建的连接套接字通常传递给负责特定客户端的处理程序