项目简介
本项目是基于C语言实现的MQTT消息通信系统。MQTT作为轻量级消息协议,在物联网领域应用广泛,具有低带宽消耗的优势。项目采用客户端 - 服务器模型,以发布/订阅的通信模式运行,由三位开发者历经四周多完成设计、规划与开发。
项目的主要特性和功能
- 支持MQTT 3.1.1版本,可实现连接、订阅、发布、断开连接等基本操作,具备日志记录功能。
- 采用C语言编写,易于理解和实现,能在多种操作系统平台运行。
- 基于TCP/IP通信,可处理多个客户端的并发连接。
- 实现高效的数据结构用于存储消息、关联用户与主题,以及处理数据包,包含编解码算法和与主题树的交互。
- 使用单例模式管理主题树结构,确保全局仅有一个树实例,运用互斥锁保证线程安全,防止数据竞争。
未实现的功能包括更高质量的服务(仅实现QoS 0)、持久会话以及取消订阅消息类型。
安装使用步骤
- 确保系统已安装C语言相关工具和库。
- 进入项目复制目录:
cd MQTT
- 在项目根目录下创建
bin
目录:mkdir bin
- 编译服务器:
gcc -o bin/server src/server.c src/queue.c src/send_packets_to_client.c src/tree.c src/decode.c src/encode.c src/packet.c src/handle_tree.c src/utils.c -lpthread
- 编译客户端:
gcc -o bin/client src/client.c src/decode.c src/encode.c src/packet.c src/send_packets_to_server.c src/utils.c -lpthread
- 执行应用程序:
- 运行服务器:
./bin/server privateIP 1833 logPath
- 运行客户端:
./bin/client publicIP 1833 logPath
- 运行服务器:
注意,需根据实际情况修改privateIP
、publicIP
和logPath
的值。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】