IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 关于LIUNX下C++实现MQTT和SSL双向认证的实现 -> 正文阅读

[网络协议]关于LIUNX下C++实现MQTT和SSL双向认证的实现

前言

? ? ? 前段时间,笔者发了MQTT系列文章

Liunx下用C语言实现MQTT的接收与发送(上)_星羽空间的博客-CSDN博客Liunx下用C语言实现MQTT的接收与发送https://blog.csdn.net/qq_25662827/article/details/122567741Liunx下用C语言实现MQTT的接收与发送(下)_星羽空间的博客-CSDN博客_c mqtt 发送消息基于paho.mqtt.c实现mqtt,Liunx下用C语言实现。https://blog.csdn.net/qq_25662827/article/details/122621150Liunx下用C++实现MQTT的接收与发送_星羽空间的博客-CSDN博客_c++ mqttLiunx下用C++实现MQTT的接收与发送,基于paho.mqtt.c库https://blog.csdn.net/qq_25662827/article/details/122622498都是基于paho.mqtt.c实现的功能。但是最近,笔者在项目开发中,遇到了一些问题,关于前面自己用C++封装出来的库链接不上别人大厂自己倒腾的MQTT服务器!为了解决问题,笔者倒腾了两个星期!!!但是,还是没能成功。

?于是乎,笔者把目光转向了paho.mqtt.c给的示例程序。


将paho.mqtt.c示例程序改造成C++的库

其实很简单,把.c改成.cpp就好了。

==》

对文件中的地址信息:

#define ADDRESS     "tcp://mqtt.eclipse.org:1883"
#define CLIENTID    "ExampleClientPub"
#define TOPIC       "MQTT Examples"
#define PAYLOAD     "Hello World!"
#define QOS         1
#define TIMEOUT     10000L

进行修改,改成大厂的地址和端口号后,单独g++进行了编译测试,运行.......

居然成功了!


MQTT进行SSL双向认证连接

大厂不知道什么时候,居然技术更新了!要求笔者卑微乙方要用SSL双向连接。

笔者按照CSDN各路大神的文章进行了修改,不过比较相中这一篇文章:

使用paho_mqtt_c库实现mqtt的ssl加密通讯_mayue_csdn的博客-CSDN博客_mqtt 启用加密文章目录启用ssl加密不做认证:单向认证:双向认证:版权声明:本文为CSDN博主「根号C」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/qq_38205154/article/details/118726385最近做mqtt加密传输,做此笔记备忘开源库版本:paho.mqtt.c-1.3.6.tar.gz编译:将paho_mqtt_c/CMakeList.txt中:启用SSL编译SET(PAHO_WITHhttps://blog.csdn.net/mayue_web/article/details/121423153在对应的地方把SSL代码加上去就好了。

————————

单独g++进行了编译测试,运行.......

.......

rc:-8

————————

连不上!!!

赶紧尝试用电脑的MQTTX和MQTTfx进行连接测试,都能成功!!!

那一定是笔者的代码问题了,于是乎,笔者开始了漫长的debug的路程。把MQTTAsync.h和MQTTAsync.c源码进行了精读。一个星期后无果。

最终在偶然的一次摸鱼时候,想到了版本问题。笔者之前用的是1.3.0版本的,现在1.3.10了。

结果,换新版本的paho.mqtt.c后,就能连接了。


结语

这个探索历程成本挺高的啊。被甲方催了很多很多次。笔者真能抗压。嚯嚯嚯……

不过也幸好有这将近一个月的经历,笔者对paho.mqtt.c这个库和MQTT协议和MQTT版本关系有了更深层次的理解。相信,笔者对MQTT的debug更上一层楼了。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-04-28 12:13:23  更:2022-04-28 12:13:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 3:26:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码