日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

IOT必备之MQTT结构分析,不进来看看?【后附源码】

發布時間:2023/12/4 c/c++ 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IOT必备之MQTT结构分析,不进来看看?【后附源码】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

全網唯一物聯網MQTT協議報文

結構分析以及基于C#代碼的報文組裝實現

介紹

MQTT是一種基于TCP/IP協議的應用層協議,它規定了不同應用之間進行數據交換時的傳送格式。既然是協議,理論上可以被任何開發語言實現它,以運行在任何平臺,這個特性就可以將所有可聯網的物品通過此協議的方式進行數據通信,這是其一,之所以被物聯網所青睞,還因為它的幾個主要的特性:

1、使用發布/訂閱消息模式,提供一對多的消息發布,解除耦合,各終端之間無關

2、對負載內容屏蔽的消息傳輸,可以對消息訂閱者所接受到的內容有所屏蔽

3、具體有三種消息發布的服務質量(以后細說)

4、小型傳輸,開銷小,固定長度的頭部是 2 字節,協議交換最小化,以降低網絡流量

5、使用Last Will和Testament特性通知有關各方客戶端異常中斷的機制

應用實現

為了更方便的抓包分析,進行了MQTT協議的服務端與客戶端的應用實現

運行機制

服務端:通過云端一個服務器程序開啟MQTT服務器(Broker),常見的如EMQ

客戶端:不管是IoT管理應用程序還是IoT設備,都屬性于客戶端程序

訂閱:各客戶端程序如果想要接收到別人發送過來的數據,就需要訂閱一個主題(Topic)

發布:任何客戶端都可以根據一個主題向服務器發布消息,服務器會根據訂立記錄,將消息推送至訂閱了對應主題的客戶端

數據傳輸格式

MQTT報文大體上包含三大部分:固定報頭、可變報頭、報文載荷,整體結構如下

固定報頭

第一個字節中高4位保存了消息的類型信息,包含1-14種類型(5.0版本擴充了第15個:認證交換)

1 CONNECT – 連接服務端

2 CONNACK – 確認連接請求

3 PUBLISH – 發布消息

4 PUBACK –發布確認

5 PUBREC – 發布收到(QoS 2,第一步)

6 PUBREL – 發布釋放(QoS 2,第二步)

7 PUBCOMP – 發布完成(QoS 2,第三步)

8 SUBSCRIBE - 訂閱主題

9 SUBACK – 訂閱確認

10 UNSUBSCRIBE –取消訂閱

11 UNSUBACK – 取消訂閱確認

12 PINGREQ – 心跳請求

13 PINGRESP – 心跳響應

14 DISCONNECT – 斷開連接

15 AUTH – 認證交換

可變報頭

報文載荷

報文截獲

利用 WireShark進行報文截獲,以連接請求報文為例:

C#代碼實現

此處以客戶端發送連接請求為例,完整報文拼接實例如下

static void Main(string[] args) {Console.WriteLine("歡迎關注朝夕教育,我是Jovan");try{string ip = "127.0.0.1";int port = 1883;string username = "admin";string password = "123456";string clientId = "C001";//Socket socketClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);socketClient.Connect(ip, port);Console.WriteLine(">>> TCP 連接通道已建立");// 建立MQTT連接{// 構建MQTT報文Listbytes = new List();bytes.AddRange(new byte[] { 0, 4 });// Protocol Name Lengthbytes.AddRange(Encoding.ASCII.GetBytes("MQTT"));// Protocol Namebytes.Add(4);byte flag = 0;flag |= 128;// 用戶名標記flag |= 64; // 密碼標記flag |= 2; ?// Clean Session 標記bytes.Add(flag);// KeepAlivebyte[] bytesKeepAlive = BitConverter.GetBytes((int)TimeSpan.FromSeconds(100).TotalSeconds);bytes.Add(bytesKeepAlive[1]);bytes.Add(bytesKeepAlive[0]);// ClientIDbyte[] clienIdBytes = Encoding.ASCII.GetBytes(clientId);bytes.Add((byte)(clienIdBytes.Length / 256));bytes.Add((byte)(clienIdBytes.Length % 256));// 長度占兩個字節bytes.AddRange(clienIdBytes);// UserNamebyte[] usernameBytes = Encoding.ASCII.GetBytes(username);bytes.Add((byte)(usernameBytes.Length / 256));bytes.Add((byte)(usernameBytes.Length % 256));// 長度占兩個字節bytes.AddRange(usernameBytes);// Passwordbyte[] passwordBytes = Encoding.ASCII.GetBytes(password);bytes.Add((byte)(passwordBytes.Length / 256));bytes.Add((byte)(passwordBytes.Length % 256));// 長度占兩個字節bytes.AddRange(passwordBytes);byte[] bufferLen = new byte[] { (byte)bytes.Count };MemoryStream memoryStream = new MemoryStream();memoryStream.WriteByte(1 << 4);memoryStream.Write(bufferLen, 0, (int)bufferLen.Length);memoryStream.Write(bytes.ToArray(), 0, (int)bytes.Count);byte[] array = memoryStream.ToArray();memoryStream.Close();socketClient.Send(array);}}catch (Exception ex){Console.WriteLine(ex.Message);}Console.ReadLine(); }

總結

以上是生活随笔為你收集整理的IOT必备之MQTT结构分析,不进来看看?【后附源码】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中文字幕第二页 | 高清不卡一区二区三区 | 最近最新mv字幕观看 | 黑人性xxx| 亚洲精品一区二三区不卡 | 无码一区二区三区在线观看 | 亚洲精品国产日韩 | 91免费短视频 | 先锋影音av在线资源 | 亚洲精品免费看 | 国产91高清 | 久久99精品国产.久久久久久 | 久久婷婷伊人 | 囯产精品一品二区三区 | 亚洲欧美日韩久久 | 国产激情在线播放 | 黄色a站 | 97毛片| 视频一区 中文字幕 | 天堂a√在线 | 欧美精品一区二区三区在线 | 国产自精品| 国产熟女一区二区 | 男女扒开双腿猛进入爽爽免费 | 午夜网页 | 国产老熟女一区二区三区 | 看片地址| 8x8ⅹ国产精品一区二区 | 18色av| 亚洲欧美韩日 | 手机av在线| 亚洲AV成人无码电影在线观看 | 在线视频久| 国产精品丝袜视频 | 少妇特殊按摩高潮惨叫无码 | 影音先锋亚洲天堂 | 69免费视频| 日日免费视频 | 超碰在线cao | 天堂在线中文资源 | 女人的天堂网站 | 绯色av一区二区三区高清 | 亚洲成a人片在线 | 777黄色| 日韩两性视频 | 欧美视频一区二区三区四区在线观看 | 娇喘顶撞深初h1v1 | 成人综合婷婷国产精品久久 | jizz成熟丰满老女人 | 一级大片免费观看 | 婷婷午夜激情 | 九九99精品| 波多野结衣视频免费观看 | 三上悠亚在线一区 | 午夜在线国产 | 久久久久www| jlzzjlzz亚洲日本少妇 | 免费色网 | 黄色中文字幕在线观看 | www色亚洲| 少妇高清精品毛片在线视频 | 黄黄的视频在线观看 | 中文字幕一区二区三区人妻四季 | 日韩av自拍 | 嫩模被强到高潮呻吟不断 | 久久久久久人妻一区二区三区 | 在线你懂得 | 经典一区二区三区 | 国产天堂视频 | 欧美一区二区免费电影 | 黄色网址在线免费看 | 丁香综合网 | 大胸美女无遮挡 | 亚洲日本激情 | 日韩三级在线免费观看 | 99久久久久 | 无码成人一区二区 | 久久国产视频播放 | xxx国产在线观看 | 免费观看成人 | 中文字幕乱码中文乱码b站 国产一区二区三区在线观看视频 | 色汉综合 | 欧美成人性生活片 | 日韩 国产 一区 | 午夜激情成人 | 亚洲四区在线 | 91天天操 | 国产大奶在线 | 最新成人| 日本色悠悠 | 涩涩天堂 | 国产在成人精品线拍偷自揄拍 | 亚洲精品免费av | xx在线视频 | 亚洲成人高清 | 国产视频一区二区三区在线播放 | 成人福利在线播放 | 91麻豆精品国产午夜天堂 | 欧美综合第一页 |