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

时间:2013-12-07 01:45:22

标签: 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)

如果另一个套接字尝试连接到此地址,它将挂起,直到server调用listen

但在Linux中并非如此,尝试在listen调用之前立即联系Connection Refused

在测试时是否有更好的方法来模拟连接超时?

2 个答案:

答案 0 :(得分:0)

您可以使用民意调查或选择。它返回到n秒,由您指定,或者当它可写时,这意味着可以为客户端连接。 http://docs.python.org/3/library/multiprocessing.html?highlight=poll#multiprocessing.Connection.poll

答案 1 :(得分:0)

我不知道你正在测试的具体细节,但你可能会继续接受,然后再睡觉 - 你似乎会在客户端获得连接,但它不会任何有用的东西(一段时间)。或者使用防火墙设置:)