首页 > 其他分享 >MQTT学习笔记

MQTT学习笔记

时间:2023-07-22 16:23:02浏览次数:50  
标签:opt MQTTClient mqtt 笔记 学习 MQTT 源码 客户端

客户端:mqttx for windows,并提供基于互联网的mqtt服务,不用再搭建

 

MQTT的C语言编程:

下载paho的包,在github上,有基于Linux的release版本,下载后,将其解压到任意目录,比如:/opt/mqtt

目录结构如下:

 安装完毕后,进行配置(如果不配置,动态链接库无法找到)

设置动态链接库的搜索路径

export  LD_LIBRARY_PATH=/opt/mqtt/lib

然后,进入bin目录执行MQTTClient_publish,如果能正常执行不报错就代表成功。这个可执行程序的源码在share/doc/???/sample目录下,可自己查看源码文件,里面设置的MQTT服务器是可用的(2023.7)。

如要自行编译,gcc要给出include文件的位置,及库文件的位置,例,如要重新编译MQTTClient_publish.c文件,用如下命令

gcc  MQTTClient.c  \

-o  MQTTclient \

-I /opt/mqtt/include \    ##指定头文件的所在位置

-L /opt/mqtt/lib    \        ##指定动态库的所在位置

-l -lpaho-mqtt3c       ##指定要链接的动态库

 

测试,以公网broker.emqx.io的MQTT服务做测试,修改源码文件并重新编译后,就可以发送了(注意:topic要写成testtopic/#,即与mqttx的客户端看到的一样)

利用mqttx的客户端查看,正常应该能看到订阅的内容。(如果仅写testtopic是看不到的)。另外一个办法就是抓包,只要都正确就算成功。

测试订阅:

编辑MQTTClient_subscribe.c文件,将服务器也指定为broker.emqx.io,执行,会发现收不到消息,这是因为默认没有订阅。

先用客户端进行订阅,并将客户端ID写到源码里重新编译后,即可执行成功。

标签:opt,MQTTClient,mqtt,笔记,学习,MQTT,源码,客户端
From: https://www.cnblogs.com/peterhu318/p/17573576.html

相关文章

  • java学习笔记
    目录值传递&引用传递WeakHashMap-弱引用MapHashMapResponseEntityMessageFormat.format-代码里直接打印输出如何将java项目的依赖打成一个大的jar包加载证书报错:Couldnotparsecertificate:java.io.IOException:Incompletedatapowermock使用注意jpa的使用注意AOP切面java......
  • pyhon 基础学习笔记(一)List
    1.有两个索引 2索引的切片L=[1,2,3,4,5,6]L[start:stop:step]如L[1,2,2] 3.列表增加元素L.append(9),L.append([2,3])尾部追加L.extend([1,2,3]) 尾部追加L.insert(3,5)位置3插入5L[2:2]=[8,9] 下标为2的位置插入8,9 3.列表删除元素L.remove(4)删除元素4......
  • maven学习笔记
    1、maven的两大核心内容:依赖管理:对jar的统一管理(Maven提供了一个Maven的中央仓库,https://mvnrepository.com/,当我们在项目中添加完依赖之后,Maven会自动去中央仓库下载相关的依赖,并且解决依赖的依赖问题。),也可以是自己的仓库。项目构建:对项目进行编译、测试、打包、......
  • 深度优先搜索dfp学习
    >>定义深度优先搜索属于图算法的一种,英文缩写为DFS即DepthFirstSearch.其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次.(accordingtoBaidu)>>几个例子eg11215迷宫 (求是否有路径)http://ybt.ssoier.cn:8088/problem_show.php?pi......
  • Telegraf&Categraf 主题学习(I)
    基于Telegraf的数据收集系统https://zhuanlan.zhihu.com/p/53376293https://flashcat.cloud/docs/content/flashcat-monitor/categraf/1-introduction/https://n9e.github.io/docs/agent/telegraf/Telegraf监控客户端调研笔记1https://mp.weixin.qq.com/s/JeBa_YOJdsv_QOlCVD......
  • html学习day02
    HITML学习Day02一、媒体属性视频属性<video></video>属性:src:资源路径controls:控制条autoplay:自动播放音频属性<audio></audio>属性src:资源路径controls:控制条autoplay:自动播放二、页面结构元素名描述header标记头部区域的内容(用......
  • C语言学习笔记(三)函数和递归
    函数和递归库函数strcpy()​ 使用之前要先包含<string.h>​ 拷贝时会将\0一起拷贝(注意:/0是字符串结束的标志,但计算长度时不计入)memset()内存设置​ 使用之前要先包含<string.h>#include<stdio.h>#include<string.h>intmain(){ chararr[]="helloworld"; memset(ar......
  • C语言学习笔记(四)数组
    数组一维数组的创建和初始化//创建类型数组名[元素个数];intarr[10];chararr2[5];//初始化intarr[10]={1,2,3};//不完全初始化chararr[5]={'a','b'};chararr3[5]="ab";//每一位为:a,b,末尾有\0chararr6[]="abcdef";//没有确定长度则必须进行初始化,根据初始......
  • 数据库学习复习随笔(JDBC没保存)
    数据库基础语法SQL常用语句总结-知乎(zhihu.com)链接table1JIONtable2ON链接条件--不加就是自然链接数据表的类型逆向查看语句SHOW逆向查看表的结构DESC数据库引擎--关于数据库引擎/*INNODBMYISM以前使用的*/ MYISAMINNODB事物支持不 数据行锁......
  • 机器学习编译(二):张量程序抽象
    元张量函数(primitivetensorfunction)一个模型的执行包含tensor和primitivetensorfunction,后者是定义tensor之间的计算步骤的函数(通常也叫op,不过这里的范围更广,还包括Module等)。上面的linear、add、relu、softmax都是元张量函数。框架通常都会实现常见的计算操......