【问题标题】:New client right after accept function call接受函数调用后的新客户端
【发布时间】:2016-01-30 02:43:20
【问题描述】:

假设我有以下代码:

import socket


listener = socket.socket()
listener.bind(('0.0.0.0', 59535))
while True:
    conn, addr = listener.accept()
    worker_thread = threading.Thread(target=client_handler, args=(conn, addr,)).start()

如果新客户端在我们创建工作线程时尝试连接到我们的侦听器套接字会发生什么?他会等待下一个接受电话还是会被拒绝?如果他等待,默认情况下该队列中可以同时有多少个客户端(是的,我知道我可以通过listen 函数设置它)?

【问题讨论】:

标签: python sockets network-programming


【解决方案1】:

内核中有一个监听队列,因此内核将处理新客户端,而您的用户空间部分则执行其他操作。如果内核中的监听队列已满,将不再接受客户端,即连接失败。

【讨论】:

  • 是的,一个小区别是 - 您的下一个“接受”调用不会阻塞,因为套接字将准备好接受新连接
  • 非常感谢!也许你可以回答另一个问题——stackoverflow.com/questions/33423115/…
猜你喜欢
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 2016-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多