一: 安装抓包工具:Wireshark, 网上大巴安装包,百度就好啦,按着顺序安装完就可以啦,软件打开界面如下:
如图,双击“”本地连接“”即可开始抓包,但是这个只能抓取网卡收发的数据;
如果想要抓取本地的TCP数据需要双击Npcap Loopback Adapter, 但是这个选项如果只安装Wireshark是没有的,还需要做下一步的操作;
二:安装Npcap,可以参考博客:wireshark如何抓取本机包,安装完成之后再打开界面就会出现上图的界面中的 所有选项
三:Wireshark的简单使用:
1. 抓包页面如下:
2. 如果不过滤数据太多了,没办法查看,所以需要设置过滤器,这里列举一些必要的设置;
1)只查看含有IP为127.0.0.1的数据:(设置完毕之后记得点击红框中的箭头来生效)
2) 只看Source 或者Destination的IP为127.0.0.1的数据
3) 只看端口为61613的数据:
4) 表达式可以用C语言中的逻辑运算符进行拼接,如:
四:相关资料:
1. MQTT协议的中文资料:https://mcxiaoke.gitbooks.io/mqtt-cn/content/mqtt/01-Introduction.html
2. MQTT的客户端和服务器工具:
服务器: apache-apollo-1.7.1
客户端:org.eclipse.paho.ui.app-1.1.1-win32.win32.x86_64
3. 此外也可以用一下的Python Client也可以用一用:
1 #-*-coding:utf-8-*-
2 import paho.mqtt.client as mqtt
3
4 # 当连接上服务器后回调此函数
5 def on_connect(client, userdata, flags, rc):
6 print("Connected with result code "+str(rc))
7
8 # 放在on_connect函数里意味着
9 # 重新连接时订阅主题将会被更新
10 client.subscribe("topic/sub")
11
12 # 从服务器接受到消息后回调此函数
13 def on_message(client, userdata, msg):
14 print("主题:"+msg.topic+" 消息:"+str(msg.payload))
15
16
17 username = "admin" # MQTT服务器的登录账号
18 password = "password" # MQTT的服务器登录密码
19 myclinet_id = "IamPythonClient" # 客户端标识符 Client Identifier
20
21 #参数有 Client(client_id="", clean_session=True, userdata=None, protocol=MQTTv311, transport="tcp")
22 client = mqtt.Client(myclinet_id )
23
24 client.on_connect = on_connect #设置连接上服务器回调函数
25 client.on_message = on_message #设置接收到服务器消息回调函数
26 client.username_pw_set(username, password)
27 client.connect("127.0.0.1", 61613, 60) #连接服务器,端口为1883,维持心跳为60秒
28 client.loop_forever()
29