Errno 113 Python MQTT客户端没有到主机的路由

Errno 113 Python MQTT客户端没有到主机的路由,python,python-2.7,activemq,mqtt,Python,Python 2.7,Activemq,Mqtt,我让ActiveMQ服务器在192.168.11.11上运行,为了测试,我尝试从同一台服务器上运行MQTT客户机,结果出现以下错误 [Errno 113] No route to host Traceback (most recent call last): File "mqtt-client.py", line 45, in <module> client.connect("192.168.11.11", 30083, 60)

我让ActiveMQ服务器在192.168.11.11上运行,为了测试,我尝试从同一台服务器上运行MQTT客户机,结果出现以下错误

[Errno 113] No route to host
Traceback (most recent call last):
  File "mqtt-client.py", line 45, in <module>
    client.connect("192.168.11.11", 30083, 60)  # Connect to (broker, port, keepalive-time)
  File "/usr/lib/python2.7/site-packages/paho/mqtt/client.py", line 839, in connect
    return self.reconnect()
  File "/usr/lib/python2.7/site-packages/paho/mqtt/client.py", line 962, in reconnect
    sock = socket.create_connection((self._host, self._port), source_address=(self._bind_address, 0))
  File "/usr/lib64/python2.7/socket.py", line 571, in create_connection
    raise err
error: [Errno 113] No route to host
Traceback (most recent call last):
  File "mqtt-client.py", line 45, in <module>
    client.connect("192.168.11.11", 30083, 60)  # Connect to (broker, port, keepalive-time)
  File "/usr/lib/python2.7/site-packages/paho/mqtt/client.py", line 839, in connect
    return self.reconnect()
  File "/usr/lib/python2.7/site-packages/paho/mqtt/client.py", line 962, in reconnect
    sock = socket.create_connection((self._host, self._port), source_address=(self._bind_address, 0))
  File "/usr/lib64/python2.7/socket.py", line 571, in create_connection
    raise err
socket.error: [Errno 113] No route to host
检查netstat

netstat -tulnp | grep 30083
tcp        1      0 0.0.0.0:30083           0.0.0.0:*               LISTEN      15815/kube-proxy
但是当我像下面这样修改代码时,它就工作了

发件人:

致:

有人能解释一下原因吗

EDIT1:

工作代码

不工作代码 如果我从其他机器上运行此代码,它可以正常工作。它仅在ActiveMQ和此代码在同一服务器上运行时才会产生问题

def on_connect(client, userdata, flags, rc):
    print("Connected with result code {0}".format(str(rc)))  
    client.subscribe("app/status")


def on_disconnect(client, userdata, rc):
    logger.info("Disconnected with result code {0}".format(str(rc)))


def on_message(client, userdata, msg):  
    print("Message received-> " + msg.topic )

try:
    log_setup()
    client = mqtt.Client("amq_comm_test")
    client.enable_logger(logger)
    client.on_connect = on_connect
    client.on_message = on_message  
    client.connect("192.168.11.11", 30083, 60)  
    client.loop_forever()  
except KeyboardInterrupt:
    logging.warn("Cancelled by user")
except Exception as ex:
    logging.exception("Unhandled error\n{}".format(ex))
    raise
finally:
    logging.shutdown()

好,
0.0.0
对于目标地址仍然没有意义,您应该尝试使用
127.0.0.1
。但是本地IP地址的
无主机路由错误
可能意味着路由表混乱。您是否在与broke相同的机器上运行了
telnet
,或者在其他地方运行过?它也适用于127.0.0.1,我在同一台机器上运行telnet,它也可以运行。
client.connect("192.168.11.11", 30083, 60) 
client.connect("0.0.0.0", 30083, 60)
def on_connect(client, userdata, flags, rc):
    print("Connected with result code {0}".format(str(rc)))  
    client.subscribe("app/status")


def on_disconnect(client, userdata, rc):
    logger.info("Disconnected with result code {0}".format(str(rc)))


def on_message(client, userdata, msg):  
    print("Message received-> " + msg.topic )

try:
    log_setup()
    client = mqtt.Client("amq_comm_test")
    client.enable_logger(logger)
    client.on_connect = on_connect
    client.on_message = on_message  
    client.connect("0.0.0.0", 30083, 60)  
    client.loop_forever()  
except KeyboardInterrupt:
    # handle Ctrl-C
    logging.warn("Cancelled by user")
except Exception as ex:
    logging.exception("Unhandled error\n{}".format(ex))
    raise
finally:
    logging.shutdown()
def on_connect(client, userdata, flags, rc):
    print("Connected with result code {0}".format(str(rc)))  
    client.subscribe("app/status")


def on_disconnect(client, userdata, rc):
    logger.info("Disconnected with result code {0}".format(str(rc)))


def on_message(client, userdata, msg):  
    print("Message received-> " + msg.topic )

try:
    log_setup()
    client = mqtt.Client("amq_comm_test")
    client.enable_logger(logger)
    client.on_connect = on_connect
    client.on_message = on_message  
    client.connect("192.168.11.11", 30083, 60)  
    client.loop_forever()  
except KeyboardInterrupt:
    logging.warn("Cancelled by user")
except Exception as ex:
    logging.exception("Unhandled error\n{}".format(ex))
    raise
finally:
    logging.shutdown()