如果我们像这样绑定服务器套接字:
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((host,port))
server.listen(5)
使用类似select()的方法,在每个客户端连接上循环,直到客户端关闭它以交换消息,而循环(for此处)同时运行我们可以使服务器客户端消息或客户端客户端交换并发。我们可以吗?你知道吗
但正如我所读到的,问题是服务器不能将超过5个客户机一个接一个地排队处理
有什么方法可以实际运行多个这样的服务器实例,前提是当排队的客户机达到5级时,多个这样的服务器进程开始侦听?你知道吗
当您收到连接时,您可以生成一个线程/进程来处理该连接。你知道吗
在主线程上,返回以侦听另一个连接
5位是一次保持的列表长度。你知道吗
类似于总机操作员
您关心的5个限制是侦听器积压工作队列的大小。这是系统在拒绝新连接之前将保留的暂停连接数。当您
accept
一个连接室在该队列上被释放。因此,只要您及时接受您的连接,在正常负载条件下这并不是一个真正的问题。(顺便说一句,5号站的位置偏低。例如,linux上每个进程的默认最大值是128。)可能您误解了backlog参数的功能。 5的限制仅适用于尚未接受的连接。你知道吗
相关问题 更多 >
编程相关推荐