Mqtt IPV6 通信

问题描述:在windows上调试mqtt填写ipv6地址,无论是Java还是python环境均会报错。

ipv6地址总的来说可分为三大类:单播地址,泛播地址和组播地址   

单播地址还可分为几类:可集聚全球单播地址,链路本地单播地址和站点本地单播地址.

以FE80::x:x:x:x开头的IPV6地址

设计链路本地地址的目的是为了用于诸如自动地址配置、邻居发现或无路由器存在的单链路的寻址。

路由器不能将带有链路本地源地址或目的地址的任何包转发到其他链路上去。

全球单播IPV6地址

2001:19f0:5:63f5:5400:2ff:xxxx:xxxx就是能在公网上出现的IPV6地址。

本测试是基于全球单播IPV6地址调试。

Ipv6地址是否可用:

centos

ifconfig

然后Ping ipv6地址

ping -6  2001:19f0:5:63f5:5400:2ff:xxxx:xxxx

windows:

ipconfig /all

ping -6 fe80::xxxxxxx%11 (%后面是端口,指你的网络interface标识符,该地址就是链接本地地址)

在centos有网环境操作:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py # 下载安装pip

sudo python get-pip.py # 运行安装脚本

pip -v  #如果出现版本表示安装成功

pip install paho-mqtt #安装paho-mqtt

vi mqtt.py

将以下代码拷入,修改ipv6地址(全球单播IPV6地址

运行demo,python mqtt.py。Connected with result conde0 表示成功,或者用Mqtt-fx工具订阅test Topic可以看到。

import time
import socket
import paho.mqtt.client as mqtt

def on_connect(client, userdata, flags, rc):
   print("Connected with result conde"+ str(rc))

client =  mqtt.Client("mycleintid",protocol=mqtt.MQTTv31)
client.on_connect = on_connect
client.connect("填写ipv6地址", 8883)
#client.connect("填写ipv4地址", 8883)


client.loop_start()

while True:
    time.sleep(3)
    client.publish("test","test")

在centos内网环境操作:

1.提前下载好setuptools 

 wget https://pypi.python.org/packages/45/29/8814bf414e7cd1031e1a3c8a4169218376e284ea2553cc0822a6ea1c2d78/setuptools-36.6.0.zip#md5=74663b15117d9a2cc5295d76011e6fd1

将在内网服务器上:

解压文件unzip setuptools-36.6.0.zip(如果没有unzip就yum isntall -u unzip zip)

cd setuptools-36.6.0

python  setup.py install

2.提前下载好pip

https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69d63c9

在内网服务器上:

解压文件tar -zxvf pip-9.0.1.tar.gz

cd pip-9.0.1

python  setup.py install

3.提前下载好paho-mqtt   

git clone https://github.com/eclipse/paho.mqtt.python.git

在内网服务器上

cd paho.mqtt.python

python setup.py install

4.参考上面python代码即可。

uploading.gif转存失败重新上传取消

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值