青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Benjamin

靜以修身,儉以養(yǎng)德,非澹薄無(wú)以明志,非寧?kù)o無(wú)以致遠(yuǎn)。
隨筆 - 398, 文章 - 0, 評(píng)論 - 196, 引用 - 0
數(shù)據(jù)加載中……

編譯MQTT C++ Client

MQTT(Message Queuing Telemetry Transport,消息隊(duì)列遙測(cè)傳輸)是IBM開(kāi)發(fā)的即時(shí)通訊協(xié)議,有可能成為物聯(lián)網(wǎng)的重要組成部分。
該協(xié)議支持所有平臺(tái),幾乎可以把所有聯(lián)網(wǎng)物品和外部連接起來(lái),被用來(lái)當(dāng)做傳感器和制動(dòng)器(比如通過(guò)Twitter讓房屋聯(lián)網(wǎng))的通信協(xié)議。

MQTT協(xié)議是為大量計(jì)算能力有限,且工作在低帶寬、不可靠的網(wǎng)絡(luò)的遠(yuǎn)程傳感器和控制設(shè)備通訊而設(shè)計(jì)的協(xié)議,它具有以下主要特性:
1、使用發(fā)布/訂閱消息模式,提供一對(duì)多的消息發(fā)布,解除應(yīng)用程序耦合;
2、對(duì)負(fù)載內(nèi)容屏蔽的消息傳輸;
3、使用 TCP/IP 提供網(wǎng)絡(luò)連接;
4、有三種消息發(fā)布服務(wù)質(zhì)量:
    • “至多一次”,消息發(fā)布完全依賴(lài)底層 TCP/IP 網(wǎng)絡(luò)。會(huì)發(fā)生消息丟失或重復(fù)。這一級(jí)別可用于如下情況,環(huán)境傳感器數(shù)據(jù),丟失一次讀記錄無(wú)所謂,因?yàn)椴痪煤筮€會(huì)有第二次發(fā)送。
    • “至少一次”,確保消息到達(dá),但消息重復(fù)可能會(huì)發(fā)生。
    • “只有一次”,確保消息到達(dá)一次。這一級(jí)別可用于如下情況,在計(jì)費(fèi)系統(tǒng)中,消息重復(fù)或丟失會(huì)導(dǎo)致不正確的結(jié)果。
5、小型傳輸,開(kāi)銷(xiāo)很小(固定長(zhǎng)度的頭部是 2 字節(jié)),協(xié)議交換最小化,以降低網(wǎng)絡(luò)流量;
6、使用 Last Will 和 Testament 特性通知有關(guān)各方客戶(hù)端異常中斷的機(jī)制;

編譯環(huán)境 win10專(zhuān)業(yè)版+vs2017企業(yè)版
1、安裝cmake,https://cmake.org/download/,直接下載安裝包(msi)

2、安裝ActivePerl軟件,https://www.activestate.com/activeperl/downloads.用cmd命令行的形式輸入指令進(jìn)入到安裝目錄,比如安裝在C:\Perl64\下,進(jìn)入到C:\Perl64\eg目錄,輸入“perl example.pl”, 如果出現(xiàn)如下圖所示的:"Hello from         ActivePerl!",則表示軟件安裝成功。安裝時(shí)自動(dòng)設(shè)置環(huán)境變量

3、安裝openssl,https://www.openssl.org/,解壓縮文件。開(kāi)始菜單-->Vistual Studio 2017-->x64 Native Tools Command Prompt for VS 2017,進(jìn)入vs2017的命令行行提示工具,切換到openssl的解壓縮目錄,依次執(zhí)行下面命令行
    perl Configure VC-WIN64 no-asm --prefix=C:\openssl(C:\openssl是openssl的安裝目錄)
                no-asm,表示不使用匯編,如果你不加上的話(huà),在執(zhí)行nmake命令時(shí)會(huì)出錯(cuò);命令執(zhí)行后控制臺(tái)上輸出NOTE: If in doubt, on Unix-ish systems use './config',則表示執(zhí)行命令失敗()
                如果這條命令執(zhí)行不成,試試這個(gè)命令perl Configure VC-WIN64A --perfix=C:\openssl\win64 (還是其存儲(chǔ)路徑),這里使用的是VC-WIN64A這個(gè)參數(shù)
    ms\do_nasm 
    ms\do_win64a
   nmake  -f  ms\nt.mak(這是靜態(tài)庫(kù),動(dòng)態(tài)庫(kù)是ntdll.mak)
   nmake  -f  ms\nt.mak test(測(cè)試命令,如果成功則最后顯示“passed all tests”字樣)
   nmake  -f  ms\nt.mak install 成功則會(huì)在C:\openss\win64目錄下生成bin、include、lib、ssl四個(gè)文件夾
   如果需要編譯動(dòng)態(tài)庫(kù),nmake  -f  ms\nt.mak改成動(dòng)態(tài)庫(kù)版本就可以了。
   清除上次OpenSSL動(dòng)態(tài)庫(kù)的編譯,以便重新編譯:nmake -f ms\ntdll.mak clean
 清除上次OpenSSL靜態(tài)庫(kù)的編譯,以便重新編譯:nmake -f ms\nt.mak clean
   
   備注:利用openssl生成RSA公私密鑰對(duì)。
   在Windows環(huán)境下,打開(kāi)OPENSSL安裝目錄bin文件下面的openssl.exe。
   生成RSA私鑰:genrsa -out rsa_private_key.pem 1024
   該命令會(huì)生成1024位的私鑰
   生成RSA公鑰:rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem此時(shí),我們可以看到一個(gè)文件名為rsa_public_key.pem的文件,打開(kāi)它,
  可以看到-----BEGIN PUBLIC KEY-----開(kāi)頭,-----END PUBLIC KEY-----結(jié)尾的沒(méi)有換行的字符串,這個(gè)就是公鑰
   把RSA私鑰轉(zhuǎn)換成PKCS8格式:pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM –nocrypt
   生成的結(jié)果就是PKCS8格式的私鑰

4、安裝cppunit(cpp單元測(cè)試件)下載地址:http://downloads.sourceforge.net/cppunit/cppunit-1.12.1.tar.gz,如果不需要測(cè)試可以省略這一步。一般我們編譯cppunit_dll工程,同時(shí)產(chǎn)生lib和dll文件
   里面有vc6的工程文件,用vs2017打開(kāi),升級(jí)工程后,編譯容易出現(xiàn)MSB3073的錯(cuò)誤,編譯完成后,copy的時(shí)候提示找不到文件。需要做如下修改

(1)General\TargetName中,$(ProjectName)-->$(ProjectName)d,而cppunit_dll工程比較特殊,它需要在cppunitd_dll中間加"d",沒(méi)辦法使用$(ProjectName),可直接寫(xiě)為cppunitd_dll

(2)Linker\General\Output Files中,DebugDll\cppunit_dll.dll-->DebugDll\$(TargetName)$(TargetExt)

(3)Linker\Advanced\Import Libraries中,.\DebugDll\cppunit_dll.lib-->.\DebugDll\$(TargetName).lib

(4)PostBuild Event\Command Line中:改為:

       copy "$(TargetPath)" ..\..\lib\$(TargetName)$(TargetExt)

       copy "$(TargetDir)$(TargetName).lib" ..\..\lib\$(TargetName).lib

5、官網(wǎng)c++Mqtt Client 地址https://github.com/eclipse/paho.mqtt.cpp
   使用git下載git clone https://github.com/eclipse/paho.mqtt.cpp,進(jìn)入剛剛下載的paho.mqtt.cpp文件中,將mqtt的c的源碼包下載下來(lái)git clone https://github.com/eclipse/paho.mqtt.c.git
   新版的mqtt文件夾里沒(méi)有sln文件,用cmake-gui生成sln文件,而后用vs2017打開(kāi)編譯,openssl路徑;或者執(zhí)行paho.mqtt.c文件夾下的cbuild批處理文件(git下來(lái)的是vs2015配置,vs2017則是
   "D:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat",具體的路徑請(qǐng)根據(jù)自己安裝配置),這里如果是批處理的話(huà)openssl的安裝目錄必須是c:\OpenSSL-Win64;
   cmake-gui,Configure選用Visual Studio 15 2017 Win64,Generate后,可以選定OPENSSL_LIB OPENSSL_INCLUDE_DIR OEPENSSLCRYPTO_LIB的路徑。

   使用cmake-gui,產(chǎn)生sln文件,在一次General之后可以選定PAHO_MQTT_C_LIB和PAHO_MQTT_C_PAHT和openssl相關(guān)路徑。然后打開(kāi)工程編譯就可以。
   如果不行產(chǎn)生ZERO_CHECK,在CMakelist文件中加入SET(CMAKE_SUPPRESS_REGENERATION 1)
   原來(lái)的CMakeLists文件比較龐雜,這是精簡(jiǎn)后的phot.mqtt.c/src/CMakeList
   phot.mqtt.c下的CMakeList:phot.mqtt.c/CMakeLists(下載完成后修改成文件名為CMakeList),去除了ZERO_CHECK、INSTALL、  PACKAGE三個(gè)工程文件。
   
   

    

   

    

posted on 2019-01-18 13:06 Benjamin 閱讀(5567) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): VC

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美顶级艳妇交换群宴| 美国十次成人| 亚洲国产精品第一区二区| 欧美日本一区二区高清播放视频| 一区二区三区四区五区精品视频| 女仆av观看一区| 久久久国产成人精品| 一区二区三区.www| 亚洲欧洲偷拍精品| 尤物九九久久国产精品的特点| 国产精品视频一区二区高潮| 欧美日韩亚洲另类| 欧美黄色aa电影| 玖玖玖免费嫩草在线影院一区| 亚洲综合成人婷婷小说| 夜夜嗨av一区二区三区四季av| 欧美激情按摩在线| 免费在线成人| 免费观看成人| 另类av导航| 久久夜色撩人精品| 久久久99免费视频| 久久精品午夜| 久久久久久久综合色一本| 欧美在线免费一级片| 香蕉久久夜色精品国产使用方法| 亚洲视频精选在线| 亚洲色图综合久久| 亚洲天堂成人在线观看| 中国成人黄色视屏| 亚洲一区二区三区四区中文| 亚洲无线一线二线三线区别av| 亚洲伦理一区| 一本大道久久a久久精二百| 日韩一级网站| 99热精品在线观看| 国产精品99久久久久久久女警| 中文在线不卡| 亚洲欧美春色| 欧美在线影院| 久久综合伊人77777蜜臀| 久久综合色8888| 欧美高清影院| 91久久久久| 亚洲国产精品一区| 日韩一级二级三级| 亚洲一区二区三区久久| 午夜在线a亚洲v天堂网2018| 欧美在线黄色| 美女主播精品视频一二三四| 欧美大片免费看| 欧美午夜不卡视频| 国产精品视频免费一区| 国产在线观看一区| 91久久久亚洲精品| 亚洲一区二区动漫| 久久精品欧美| 亚洲成人在线网| 一二三区精品| 欧美在线视频二区| 欧美黑人国产人伦爽爽爽| 国产精品mv在线观看| 国产一区二区三区在线观看免费视频 | 亚洲欧洲精品一区| 国产精品99久久久久久久vr| 久久av红桃一区二区小说| 老司机精品福利视频| 亚洲国产成人在线播放| 在线亚洲电影| 久久激情视频| 欧美精品aa| 国产日韩欧美在线一区| 1000部国产精品成人观看 | 欧美伊人久久久久久久久影院| 久久免费视频在线观看| 亚洲精品综合| 久久精品理论片| 欧美日韩精品福利| 国内精品久久国产| 99伊人成综合| 老牛影视一区二区三区| 99re热精品| 久久伊人精品天天| 国产精品人成在线观看免费| 亚洲国产电影| 亚洲欧洲av一区二区| 欧美电影免费观看高清| 亚洲欧美日韩精品久久久| 欧美激情亚洲自拍| 黄色成人在线网址| 亚洲视频在线观看免费| 欧美成人情趣视频| 欧美亚洲网站| 欧美视频在线观看一区| 亚洲国产精品第一区二区三区| 欧美一二区视频| 亚洲精品在线免费| 免费成人高清| 国内成人精品视频| 亚洲欧美日韩中文播放| 亚洲人成欧美中文字幕| 久久久久久久91| 国产欧美精品一区二区三区介绍| 一本色道婷婷久久欧美| 欧美丰满高潮xxxx喷水动漫| 欧美在线1区| 国产精品欧美精品| 亚洲视频网站在线观看| 欧美黄色精品| 久久综合图片| 国内激情久久| 久久精品综合网| 亚洲欧美不卡| 国产精品一区毛片| 亚洲女同同性videoxma| 亚洲欧洲一区二区天堂久久| 噜噜噜91成人网| 娇妻被交换粗又大又硬视频欧美| 欧美有码视频| 午夜亚洲福利| 国产精品午夜电影| 午夜精品久久久久久久男人的天堂| 99精品欧美一区二区三区| 欧美激情影院| 亚洲区免费影片| 亚洲国产精品一区二区www| 欧美成人综合| 亚洲三级影院| 亚洲高清免费视频| 欧美国产成人精品| 一本色道**综合亚洲精品蜜桃冫 | 欧美日韩高清免费| 日韩亚洲欧美中文三级| 亚洲精品一二三区| 欧美日韩一区二区三区在线视频| 一区二区三区成人精品| 一区二区精品| 国产精品女同互慰在线看| 欧美一区二区三区的| 午夜欧美不卡精品aaaaa| 国产亚洲在线| 久久久噜噜噜久噜久久| 久久在线免费观看视频| 亚洲精品在线免费| 日韩视频专区| 国产欧美欧美| 蜜臀久久99精品久久久久久9| 免费视频久久| 一区二区久久久久| 夜夜爽www精品| 国产日韩在线视频| 另类亚洲自拍| 欧美精品一区二区在线观看| 亚洲一卡久久| 欧美在线不卡| 亚洲国产天堂久久综合网| 亚洲乱码视频| 国产日韩欧美综合精品| 欧美高清视频一二三区| 欧美激情精品久久久六区热门| 亚洲一级一区| 久久xxxx精品视频| 亚洲国产91精品在线观看| 亚洲精品综合精品自拍| 国产女主播一区二区三区| 免费看亚洲片| 欧美精品情趣视频| 欧美自拍偷拍午夜视频| 免费在线成人av| 性欧美大战久久久久久久免费观看| 久久av二区| 中文av一区特黄| 久久av一区二区三区| 夜夜嗨av一区二区三区四季av| 亚洲精品一区二区三区不| 国产日韩欧美中文| 亚洲国产精品999| 国产精品你懂的在线| 欧美激情第10页| 国产欧美亚洲日本| 亚洲三级观看| 又紧又大又爽精品一区二区| 一区二区三区精品视频| 国产一区美女| 一区二区日韩精品| 亚洲国产精品福利| 欧美一区二区三区免费视频| 亚洲人成网站在线播| 欧美伊久线香蕉线新在线| 亚洲视频在线看| 久久久久久夜| 亚洲欧美在线另类| 欧美精品电影在线| 免费在线观看日韩欧美| 国产热re99久久6国产精品| 亚洲精品一区二区三区樱花| 在线播放精品| 久久成人精品| 久久不见久久见免费视频1| 欧美国产一区二区在线观看 |