【问题标题】:Listening to an unlimited number of sockets in python在python中监听无限数量的套接字
【发布时间】:2018-08-10 05:05:48
【问题描述】:

我想知道,如果我想监听每个想要加入的套接字, 我需要在里面写什么 袜子。听(?) 什么数字在那里告诉python“我想听每个人”而不是有限数量的套接字。 本来想放一个大数的,但感觉不是正确的答案。

感谢大家的帮助!!

【问题讨论】:

    标签: python networking


    【解决方案1】:

    参见this answer John la Rooy 所说的:

    医生这么说

    socket.listen(backlog) 监听到套接字的连接。这 backlog 参数指定排队连接的最大数量 并且应该至少为 1;最大值取决于系统 (通常是 5 个)。

    显然系统值在您的系统上大于 5。我没看到 为什么将其设置为更大的数字会是一个问题。也许有些 为每个排队的连接保留内存。

    我的 linux 手册页有这样的说法

    如果 backlog 参数大于 /proc/sys/net/core/somaxconn,然后它被默默地截断为 价值;此文件中的默认值为 128。在内核之前 2.4.25,这个限制是一个硬编码的值,SOMAXCONN,值为 128。

    【讨论】:

    • 但是我正在做一个项目,我需要听任何连接的人,如果我只放 5 个,我最多只能听 5 个人。 (或者我完全错了)
    • 套接字不是并发的。您一次可以处理一个请求,您在 socket.listen() 中放置的数字是积压的。积压工作本质上是一个需要响应的未接受连接队列。如果此队列满后请求到达,它将被拒绝。有关更多详细信息,请参阅docs.python.org/3/library/socket.html#socket.socket.listen
    • 哦,现在我明白了!谢谢!
    猜你喜欢
    • 2013-03-29
    • 2011-02-15
    • 2013-05-20
    • 1970-01-01
    • 1970-01-01
    • 2019-03-05
    • 2018-07-13
    • 1970-01-01
    • 2019-05-04
    相关资源
    最近更新 更多