COAP(Constrained Application Protocol )协议由RFC7252定义,是用于受限设备和网络的传输协议。受限的意思是指设备内存较小,网络传输速率较低,并且丢包率比较高。因此,COAP协议主要用于设备到设备(M2M)通讯。鸿蒙OS将COAP协议用于分布式通讯中的主从设备发现。
COAP协议的具体说明,这里不详细解释,可以参考RFC7252的详细说明或者网上的相关说明。
- COAP包的格式和解析函数
COAP协议的消息RFC7252定义如下:
![b4930374c9bbc1d2fb21542bc1c14c63.png](https://i-blog.csdnimg.cn/blog_migrate/e74d68fc2b05455209503bb4c4c0e7f6.jpeg)
在discovery/coap/include/coap_def.h,通过结构体COAP_Header定义了该协议头如下:
![3da7d110e0c7580e1a68f01f0b7d9b78.png](https://i-blog.csdnimg.cn/blog_migrate/04c933147fc06db84b2e328482ef671a.jpeg)
结构体COAP_Packet则描述了一个完整的COAP包: