在Python3中使用套接字,我可以吗?
listen()
在套接字上connect()
到另一台服务器accept()
进行第一个连接,否则关闭套接字这可能吗?如果可以,怎么办?
答案 0 :(得分:1)
accept
是服务器应用程序了解某些客户端已连接并为该客户端获取套接字的方式。但是accept
实际上并未创建与客户端的连接。仅由于服务器套接字已更改为listen
状态,操作系统已经建立了此连接。 accept
仅向应用程序提供已建立的TCP连接。
因此,您实际上需要首先调用accept
才能知道有一些客户端连接到服务器。如果您不希望此客户端仅close
接受的连接。
请注意,某些操作系统具有accept filters的概念,在accept
返回连接之前,可以在内核内部检查连接。但是即使在这种情况下,也首先建立了TCP连接,并且从客户端的角度来看,所建立的连接实际上是关闭的(即OS内核或服务器应用程序)也没有太大区别。