
HarmonyOS 网络应用开发 原创
目录
1.UDP客户端
1.1 UDP协议相关API介绍
socket.h接口简介:
这个socket.h中包含声明UDP协议相关接口函数。
接口名 | 功能描述 |
---|---|
socket | 创建套接字 |
sendto | 将数据由指定的socket发送到远端主机 |
recvfrom | 从远端主机接收UDP数据 |
close | 关闭套接字 |
1.2 UDP客户端创建流程介绍
1.3 实现UDP客户端
打开“D3_iot_udp_client”工程的udp_client_demo.c文件,可在代码中查看实现UDP客户端的代码
ip地址要改为电脑的ip地址
代码讲解过程见:
https://www.bilibili.com/video/BV1tv411b7SA?p=10&share_source=copy_web&vd_source=8f1cf1d7278a65d1271a6ccbd8891dc6 P25
2.TCP服务端
2.1 TCP协议相关API介绍
socket.h接口简介:
这个socket.h中包含声明TCP协议相关接口函数。
接口名 | 功能描述 |
---|---|
socket | 创建套接字 |
bind | 为套接字关联了一个相应的地址与端口号 |
listen | 将套接字设置为监听模式 |
accept | 接受套接字上新的连接 |
recv | 接收数据 |
send | 发送数据 |
close | 关闭套接字 |
2.2 TCP服务端创建流程介绍
2.3 实现TCP服务端
打开“D4_iot_tcp_server”工程的tcp_server_demo.c文件,可以查看实现TCP服务的代码。
代码讲解过程见:
https://www.bilibili.com/video/BV1tv411b7SA?p=10&share_source=copy_web&vd_source=8f1cf1d7278a65d1271a6ccbd8891dc6 P26
3.TCP客户端
3.1 TCP协议相关API介绍
socket.h接口简介:
这个socket.h中包含声明TCP协议相关接口函数。
接口名 | 功能描述 |
---|---|
socket | 创建套接字 |
connect | 连接到指定的主机 |
send | 发送数据 |
recv | 接收数据 |
close | 关闭套接字 |
3.2 TCP客户端创建流程介绍
3.3 实现TCP客户端
打开“D3_iot_udp_client”工程的udp_client_demo.c文件,修改部分代码即可实现TCP客户端。
原代码:
修改后代码:
代码讲解过程见:
https://www.bilibili.com/video/BV1tv411b7SA?p=10&share_source=copy_web&vd_source=8f1cf1d7278a65d1271a6ccbd8891dc6 P27
4. UDP服务端
4.1 UDP协议相关API介绍
socket.h接口简介:
这个socket.h中包含声明UDP协议相关接口函数。
接口名 | 功能描述 |
---|---|
socket | 创建套接字 |
bind | 将ip和端口绑定到嵌套字 |
sendto | 将数据由指定的socket发送对方主机 |
recvfrom | 从指定主机接收UDP数据 |
close | 关闭套接字 |
4.2 UDP服务端创建流程介绍
4.3 实现UDP服务端
打开“D4_iot_tcp_server”工程的tcp_server_demo.c文件,修改部分代码即可实现UDP服务端。
原代码:
修改后代码:
代码讲解过程见:
https://www.bilibili.com/video/BV1tv411b7SA?p=10&share_source=copy_web&vd_source=8f1cf1d7278a65d1271a6ccbd8891dc6 P28
5. MQTT客户端
5.1 MQTT介绍
MOTT (Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。
Paho是IBM在2011年建立的Eclipse开源项目,该项目包含以C、Java、Python、Javascript等语言编写的可用客户端。
嵌入式c语言客户端开源地址:
https://github.com/eclipse/paho.mqtt.embedded-c
5.2 Paho MQTT文件目录介绍
- MQTTClient:封装MQTTPacket生成的高级别C++客户端程序。
- MQTTClient-C:封装MQTTPacket生成的高级别C客户端程序
- samples目录提供FreeRTOS和linux两个例程,分别支持FreeRTOS和Linux系统。
- src目录提供MQTTClient的代码实现能力,以及用于移植到对应平台的网络驱动
- MQTTPacket:提供MQTT数据包的序列化与反序列化,以及部分辅助函数。
5.3 如何使用Paho MQTT
在MQTTClient.h中包含声明Paho MQTT相关接口函数。
接口名 | 功能描述 |
---|---|
MQTTClientlnit | 创建一个客户端对象 |
MQTTConnect | 发送MQTT连接数据包 |
MQTTConnectWithResults | 发送MQTT连接数据包并等待返回 |
MQTTPublish | 发送MQTT发布数据包 |
MQTTSetMessageHandler | 发送每个topic消息处理函数 |
MQTTSubscribe | 发送MQTT订阅数据包 |
MQTTSubscribeWithResults | 发送MQTT订阅数据包并等待返回结果 |
MQTTUnsubscribe | 发送MQTT取消数据包 |
MQTTDisconnect | 发送MQTT断开连接数据包并关闭连接 |
5.4 实现MQTT客户端
打开“D5_iot_mqtt”工程的iot_mqtt.c文件,查看实现MQTT客户端的代码。
代码讲解过程见:
https://www.bilibili.com/video/BV1tv411b7SA?p=10&share_source=copy_web&vd_source=8f1cf1d7278a65d1271a6ccbd8891dc6 P29
本部分代码也做了一些更新,如果发现代码不一样的话,可以去gitee同步一下
