我是套接字编程的新手,在理解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个客户端可以同时连接到服务器套接字(据我了解)。
在您的示例中,第一个连接的客户端得到响应。backlog参数并不意味着可以并行连接的客户端数量。这是等待接受连接的最大客户端数。
在ServerSocket
未连接到任何特定的客户端。连接的套接字是从返回的套接字accept()
。如果要并行处理多个客户端,则必须accept()
多次调用并分别处理连接。例如,您可以为每个连接创建一个特殊的线程。
accept()
通常在循环中调用,并且accept()
通常将返回的新创建的连接套接字传递给负责特定客户端的处理程序。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句