我有一个启动线程的python程序。
此线程,每秒向同一网络上的服务器发出一个休息请求。
有时此服务器已关闭。 如果其余请求失败,则线程结束,主程序启动新线程。
每个休息请求都通过以下代码段完成:
import requests
def getxml(link):
r = requests.get(link, allow_redirects=True)
if (r.status_code == 200):
xml = r.text
else:
xml = ""
return xml
xml = getxml('192.168.1.201:5000/OKUMA.Lathe/probe')
有时此代码会生成异常:
Exception: HTTPConnectionPool(host='192.168.1.201', port=5000):
Max retries exceeded with url: /OKUMA.Lathe/probe
(Caused by NewConnectionError('<urllib3.connection.HTTPConnection object
at 0x75d241b0>: Failed to establish a new connection: [Errno 113]
No route to host'))
当服务器关闭时,这可能是正常的。但是,当服务器打开时,也会发生这种情况。 奇怪的是:
如果我对服务器执行ping操作,我将收到Pong。
如果将浏览器连接到链接,则会获取数据。
如果我重新启动python程序,一切正常。
我也尝试了urllib,但是遇到了同样的错误。
为什么我没有通往主机的路由错误?