在服务器上生成超过5个客户端请求

2024-06-13 20:50:45 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我们像这样绑定服务器套接字:

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
server.bind((host,port)) 
server.listen(5) 

使用类似select()的方法,在每个客户端连接上循环,直到客户端关闭它以交换消息,而循环(for此处)同时运行我们可以使服务器客户端消息或客户端客户端交换并发。我们可以吗?你知道吗

但正如我所读到的,问题是服务器不能将超过5个客户机一个接一个地排队处理

有什么方法可以实际运行多个这样的服务器实例,前提是当排队的客户机达到5级时,多个这样的服务器进程开始侦听?你知道吗


Tags: 方法服务器host消息客户端stream客户机server
3条回答

当您收到连接时,您可以生成一个线程/进程来处理该连接。你知道吗

在主线程上,返回以侦听另一个连接

5位是一次保持的列表长度。你知道吗

类似于总机操作员

您关心的5个限制是侦听器积压工作队列的大小。这是系统在拒绝新连接之前将保留的暂停连接数。当您accept一个连接室在该队列上被释放。因此,只要您及时接受您的连接,在正常负载条件下这并不是一个真正的问题。(顺便说一句,5号站的位置偏低。例如,linux上每个进程的默认最大值是128。)

可能您误解了backlog参数的功能。 5的限制仅适用于尚未接受的连接。你知道吗

相关问题 更多 >