没有到主机的路由,如果主机已启动并准备就绪

2024-06-16 15:23:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python程序,可以启动一个线程。你知道吗

此线程,每秒向同一网络上的服务器发出一个rest请求。你知道吗

有时此服务器已关闭。 如果rest请求失败,线程结束,主程序启动一个新线程。你知道吗

每个rest请求都使用以下代码片段完成:

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,但是我得到了相同的错误。

为什么我会出现无路由到主机的错误??你知道吗


Tags: to代码程序服务器resthostlinkxml