gpt4 book ai didi

python - 当连接中断时,读取 urllib2 生成的流永远不会恢复

转载 作者:太空狗 更新时间:2023-10-29 20:57:23 27 4
gpt4 key购买 nike

在尝试使我的一个 python 应用程序在连接中断的情况下更加健壮时,我发现调用 urllib2 生成的 http-stream 的读取函数可能会永远阻止脚本。

我认为读取函数会超时并最终引发异常,但在读取函数调用期间连接中断时情况并非如此。

这是会导致问题的代码:

import urllib2

while True:
try:
stream = urllib2.urlopen('http://www.google.de/images/nav_logo4.png')
while stream.read(): pass
print "Done"
except:
print "Error"

(如果您尝试脚本,您可能需要多次中断连接,然后才能达到脚本永远无法恢复的状态)

我通过 Winpdb 观看了脚本,并截取了脚本永远无法恢复的状态(即使网络再次可用)。

Winpdb http://img10.imageshack.us/img10/6716/urllib2.jpg

有没有办法创建一个 python 脚本,即使网络连接中断也能继续可靠地工作? (我宁愿避免在额外的线程中执行此操作。)

最佳答案

尝试这样的事情:

import socket
socket.setdefaulttimeout(5.0)
...
try:
...
except socket.timeout:
(it timed out, retry)

关于python - 当连接中断时,读取 urllib2 生成的流永远不会恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/811446/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com