Python 如何在Linux中模拟套接字连接超时?

Python 如何在Linux中模拟套接字连接超时?,python,linux,sockets,networking,Python,Linux,Sockets,Networking,在MacOS中,我通常使用以下解决方案: import socket import time server = socket.socket() server.bind(('127.0.0.1', 7777)) time.sleep(5) server.listen(1) 如果另一个套接字尝试连接到此地址,它将被挂起,直到服务器调用侦听 但在Linux中并非如此,在listen调用之前尝试连接会立即导致连接被拒绝 那么,在测试时有没有更好的方法来模拟连接超时?您可以使用轮询或选择。它

在MacOS中,我通常使用以下解决方案:

 import socket
 import time
 server = socket.socket()
 server.bind(('127.0.0.1', 7777))
 time.sleep(5)
 server.listen(1)
如果另一个套接字尝试连接到此地址,它将被挂起,直到
服务器
调用
侦听

但在Linux中并非如此,在
listen
调用之前尝试连接会立即导致
连接被拒绝


那么,在测试时有没有更好的方法来模拟连接超时?

您可以使用轮询或选择。它返回n秒,这是由您指定的,或者当它是可写的,这意味着客户端是可连接的。

我不知道您测试的具体内容,但您可能可以继续进行,然后接受,然后睡觉-您将在客户端中获得连接,但它没有做任何有用的事情(一段时间)。或者使用防火墙设置:)

您确定这是Linux/Mac的问题吗?而不是Python版本。@CaptainGiraffe Python版本(2.7)在这两种情况下都是相同的。您在测试什么-a)服务器不侦听时客户端的行为,b)客户端等待连接的时间,或者c)其他什么?