我正在使用套接字编程在 python 中创建一个简单的聊天应用程序,我需要我的套接字接受无限数量的连接,不像这个限制为 100 的“socket.listen(100)”。请解释我应该怎么做处理大量连接?
最佳答案
listen()
给出的数字是 backlog 队列的大小 - 提示 未决请求的数量,而不是事件请求数。
您经常会看到 5
的值用于 backlog 参数 - 这是历史记录。 Berkeley 套接字的早期版本有一个“特性”,即任何大于 5 的值都只给出 5。所以它是 5。这在很久以前就已修复,但仍然不是您需要过分担心的数字 - 请记住,这只是一个提示。
如果积压超出,则给客户端的实际错误通常是包罗万象的ECONNREFUSED
,但旧系统过去常常有特定的积压错误。
在许多系统上,backlog 被静默地截断为 SOMAXCONN
。
关于python - 接受与套接字的无限连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41595176/