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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mqtt客户端c语言开发

發布時間:2023/12/14 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mqtt客户端c语言开发 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MQTT客戶端

  • MQTT客戶端開發
    • 簡介
    • 架構圖
    • 傳輸層
    • 協議層

MQTT客戶端開發

MQTT(消息隊列遙測傳輸)工作在 TCP/IP協議族上,是為硬件性能低下的遠程設備以及網絡狀況糟糕的情況下而設計的發布/訂閱型消息協議。
本篇博客主要記錄客戶端采用paho庫二次封裝,適配linux/win平臺,使用c++語言開發。
主要內容包括,設計思想、架構設計、程序源碼等。

簡介

開發mqtt客戶端,首先選定paho庫作為基礎收發庫,應用具有自己的通信協議,mqtt客戶端需要將數據按照協議封裝,然后調用paho庫進行收發。

架構圖

應用層:調用該模塊的應用。
協議層:模塊對協議的封裝,主要任務是封包、解包以及調用傳輸層完成數據收發。
傳輸層:使用paho庫,完成連接的維護、數據的收發等具體通信的工作。

傳輸層

傳輸層使用paho作為基礎庫,具體使用方法見其官網:http://www.eclipse.org/paho/index.php?page=downloads.php
其支持的語言包括c/c++等,這里采用c++語言的庫。

https://github.com/eclipse/paho.mqtt.cpp
可根據官網給出的連接下載c++語言的paho庫,win/linux平臺的都可以找到。linux平臺的庫可以自己編譯得到,編譯流程如下:

git clone https://github.com/eclipse/paho.mqtt.cpp cd paho.* ./configure make -j100

協議層

所謂協議層,就是根據應用的功能定義的協議,按照應用需要完成實現的功能,將請求參數按照協議打包,在通過傳輸層的接口來發送和接收,同時也會將接收到的數據進行解包,結果返回應用。
因為mqtt協議的主題特性,協議層需要考慮應用對同一個主題T1發送了A、B、C三個功能請求,broker(中間服務器)也將三個功能請求結果返回給T2主題,客戶端如何將T2主題的三個返回分發給A/B/C,所以這里增加了三個條件變量,當發送A請求的時候,創建A的條件變量,阻塞等待A的應答,當在規定時間內,協議層收到數據,并解析數據確定是A的應答后,就講該應答分發給A請求,同時釋放A的條件變量,至此完成了A功能。

總結

以上是生活随笔為你收集整理的mqtt客户端c语言开发的全部內容,希望文章能夠幫你解決所遇到的問題。

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