localhost導致MQTT本地客戶端與本地broker無法連接問題

今天在調試時發現一個localhost問題:

#define EMBER_AF_PLUGIN_TRANSPORT_MQTT_BROKER_ADDRESS "tcp://localhost:1883"
#define EMBER_AF_PLUGIN_TRANSPORT_MQTT_BROKER_ADDRESS_LENGTH (20)

當MQTT客戶端設置本地地址爲localhost:1883時,無法連接本地broker.

#define EMBER_AF_PLUGIN_TRANSPORT_MQTT_BROKER_ADDRESS "tcp://127.0.0.1:1883"
#define EMBER_AF_PLUGIN_TRANSPORT_MQTT_BROKER_ADDRESS_LENGTH (20)

修改localhost爲127.0.0.1後問題解決

這裏分析原因:

root@sun8i:/etc# ls
adb_profile      etc_complete     modules-boot.d   rc.d
banner           fstab            modules.d        res
banner.failsafe  group            mtab             resolv.conf
camera.cfg       hotplug.d        openwrt_release  shadow
cedarx.conf      init.d           openwrt_version  shells
config           inittab          opkg             ts.conf
crontabs         localtime        opkg.conf        tslib-env.sh
device_info      lost+found       passwd           uci-defaults
dnsmasq.conf     mdev.conf        profile          wifi
e2fsck.conf      mediafile.txt    rc.common        xr_wifi.conf
root@sun8i:/etc# cd ..
root@sun8i:/# find . -name hosts
root@sun8i:/# 

可以看到,嵌入式板子上/etc目錄下沒有host文件,所以無法解析localhost字符串,這纔是問題的原因,大家在遇到類似問題時請多注意域名的解析問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章