Linux下MQTT安装及测试

本文介绍了在Ubuntu 16.04环境下安装MQTT代理服务器mosquitto和C/C++接口库paho.mqtt.c的详细步骤。通过简单示例演示了如何测试安装是否成功,并提供了C/C++中使用MQTT的基本方法。
摘要由CSDN通过智能技术生成

雨打梨花深闭门

忘了青春

误了青春

物联网老师上课的时候突然让用MQTT写一个通信程序,实现命令控制,他说的是客户端输入ls,那边就得返回目录信息,不是很懂,查了一大堆也不会,今天有点时间把第一步走了。

MQTT程序安装

千里之行,始于足下

这东西安装也是费了大劲,百度一查全是介绍协议的,CSDN博客上也是互相抄的飞起,没一个是真正能用的,要么抄别人没抄完,要么抄的就是错的。

理一下我们的需求:使用MQTT通信,实现部分远程控制命令,基于C/C++编程语言实现。

然后再看看MQTT到底是个什么?

简单来说就是个消息代理,双方制定同一个订阅ID,假设是“2333”,那么发布端负责使用“2333”发布消息,订阅端则使用“2333”接收消息。

所以我们需要安装两个东西:

  • MQTT代理服务器(mosquitto)
  • MQTT的C/C++接口库(paho.mqtt.c)

接下来的安装步骤均基于Ubuntu 16.04的环境下进行。

mosquitto安装

我又要吐槽了,人家官网都说了,Ubuntu可以apt安装,我就不明白为什么网上一搜全是源码安装的,无脑抄真是难搞。。。mosquitto官网下载

img

直接执行命令:

sudo apt install mosquitto

会自动安装对应的依赖库的,简单吧!!!

可以用一个小例子检测下是否安装成功:

依次开三个终端执行以下命令:

终端1,作为代理服务器:

mosquitto -p 1883   # mosquitto默认时候用1883端口

终端2,作为订阅端:

mosquitto_sub -t mqtt

终端3:,作为发布端:

mosquitto_pub -h localhost -t mqtt -m "23333"

然后,就能在终端2收到消息了:

paho.mqtt.c安装

这个得从github上下载源码安装,其实安装教程在README中已经写了,基本执行以下命令就行了:

安装依赖:

sudo apt-get install build-essential gcc make cmake cmake-gui cmake-curses-gui

安装paho.mqtt.c:

# clone
git clone git@github.com:eclipse/paho.mqtt.c.git   # ssh
git clone https://github.com/eclipse/paho.mqtt.c.git # https
# run
cd paho.mqtt.c
make
sudo make install

然后就安装好了,需要注意的是,头文件默认在/usr/local/include下,动态/静态库默认在/usr/local/lib下,也就是说你如果要用到这个库的话,得想好怎么去引用,可以使用cmake或者你再移动到/usr/include/usr/lib下,当然只是完成作业的话还有一种非常简单粗暴的方法,就是把文件拷贝到当前目录下哈哈哈。

C/C++中使用MQTT

很简单,调接口就行了。

举个小例子。

发布端 publish.cpp:

#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include "MQTTClient.h"

int main(int argc, char **argv) {
   
    char *<
  • 11
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值