首页 > 解决方案 > socket.gaierror: [Errno 11001] getaddrinfo 在尝试连接到 mqtt 代理时失败

问题描述

我徒劳地尝试从以下 python 代码连接到 mqtt 代理:

import paho.mqtt.client as mqtt
MQTT_HOST = "mqtt_host"
BROKER_PORT = 2883
MQTT_KEEPALIVE_INTERVAL = 45


def on_log(client,userdata,level,buf):
    print("log: ",buf)

def on_connect(client, userdata, flags, rc):  
    if int(rc) == 0:
        print("Succesful connection")
        print("ok")
    print("Bad connection ! Result code {}".format(rc)) 

def on_message(client, userdata, msg):
    print("ok")

client = mqtt.Client()

#client.tls_set(ca_certs="caCert.pem")
client.tls_set(ca_certs="caCert.pem")
client.username_pw_set("hostname","password")
   
client.on_connect = on_connect
client.on_message = on_message
client.connect(MQTT_HOST, 2883, 60)

client.on_log = on_log
client.loop_forever()

这是我收到的错误消息:

Traceback (most recent call last):
  File "connexion.py", line 28, in <module>
    client.connect(MQTT_HOST, 2883, 60)
  File "F:\projets\P&L\mqtt\venv\lib\site-packages\paho\mqtt\client.py", line 941, in connect
    return self.reconnect()
  File "F:\projets\P&L\mqtt\venv\lib\site-packages\paho\mqtt\client.py", line 1075, in reconnect
    sock = self._create_socket_connection()
  File "F:\projets\P&L\mqtt\venv\lib\site-packages\paho\mqtt\client.py", line 3546, in _create_socket_connection
    return socket.create_connection(addr, source_address=source, timeout=self._keepalive)
  File "c:\users\hp\appdata\local\programs\python\python38\lib\socket.py", line 787, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
  File "c:\users\hp\appdata\local\programs\python\python38\lib\socket.py", line 918, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno 11001] getaddrinfo failed

我想知道出了什么问题。我对所有提议和建议持开放态度。提前致谢。

标签: pythonmqttpaho

解决方案


推荐阅读