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