在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
。
在测试时是否有更好的方法来模拟连接超时?
答案 0 :(得分:0)
您可以使用民意调查或选择。它返回到n秒,由您指定,或者当它可写时,这意味着可以为客户端连接。 http://docs.python.org/3/library/multiprocessing.html?highlight=poll#multiprocessing.Connection.poll
答案 1 :(得分:0)
我不知道你正在测试的具体细节,但你可能会继续接受,然后再睡觉 - 你似乎会在客户端获得连接,但它不会任何有用的东西(一段时间)。或者使用防火墙设置:)