gpt4 book ai didi

Python socket.listen(...)

转载 作者:太空狗 更新时间:2023-10-29 21:14:53 25 4
gpt4 key购买 nike

我在 python 文档中看到的关于 sock.listen(5) 的所有示例都建议我应该将最大积压数量设置为 5。这对我的应用程序造成了问题,因为我期望有一些非常高的容量(许多并发连接)。我将它设置为 200 并且在我的系统上没有发现任何问题,但想知道在它引起问题之前我可以将它设置多高..

有人知道吗?

编辑:这是我的 accept() 循环。

while True:    
try:
self.q.put(sock.accept())
except KeyboardInterrupt:
break
except Exception, e:
self.log("ERR %s" % e)

最佳答案

您不需要将 listen() 的参数调整为大于 5 的数字。

该参数控制允许未完成的非accept() 连接数。 listen() 参数与并发连接的套接字数无关,仅与进程尚未accept() 的并发连接数有关。

如果将参数调整为 listen() 对您的代码有影响,这是每次调用 accept() 之间发生过多延迟的症状。然后,您可能想要更改 accept() 循环,以减少开销。

在你的例子中,我猜测 self.q 是一个 python queue ,在这种情况下,您可能需要调用 self.q.put_nowait() 以避免任何可能的阻塞 accept() 循环打电话。

关于Python socket.listen(...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2444459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com