0

我有一个 Python 脚本,它递归地将数据发送到中央服务器。路由器将进入睡眠状态,直到有新数据排队等待传输。唤醒过程大约需要 20 秒左右,因此我尝试如下建立连接:

TIMEOUT = 100
def connect():
    return HTTPConnection(HOST, timeout=TIMEOUT)

connection = connect()

现在,我希望函数 HTTPConnection() 仅在超时过期后才返回,这不是它正在做的事情。我的函数在 3 秒左右后返回并给我一个连接错误。这是为什么?我需要编写自己的超时循环吗?

谢谢你,罗恩

4

1 回答 1

0

好吧,我最终解决问题的方法是,为了唤醒路由器,我向 8.8.8.8 发送一个超时时间很长的 ping,这将唤醒路由器并得到回复

def wakeup():
    subprocess.Popen(["/bin/ping", "-c2", "-w"+str(WAKETIME), PINGHOST], stdout=subprocess.PIPE).stdout.read()

而且我只是在执行任何其他 http 请求之前调用此函数,因此我根本不必为增加 HTTP 超时而烦恼。

于 2013-02-03T05:14:17.260 回答