在 Python 套接字连接中延迟 accept()

Delay accept() in Python socket connection

在Python3中使用套接字,我可以:

这可能吗?如果是,怎么做?

accept 是服务器应用程序知道某个客户端已连接并获取到此客户端的套接字的方式。但是 accept 实际上并没有创建到客户端的连接。由于服务器套接字已更改为 listen 状态,因此 OS 已经建立了此连接。 accept 仅向应用程序提供已建立的 TCP 连接。

所以你需要先实际调用 accept 才能知道有一些客户端连接到服务器。如果您不想要此客户端,只需 close 已接受的连接。

请注意,某些 OS 具有 accept filters 的概念,其中可以在 accept 返回连接之前在内核内部检查连接。但即使在这种情况下,首先建立 TCP 连接,从客户端的角度来看,实际关闭已建立的连接并没有太大区别,即 OS 内核或服务器应用程序。