1、说明
服务器和板子之间的通讯协议,通过tcp连接,并且保持连接,增加数据通信的实时性。
2、协议基本规则
包头 + 数据 + 包尾
包头:
(1)一般为cmd_flag,表示是自己的数据,防止其他客户端连接服务器发送大量垃圾数据
(2)cmd,表示该数据包的作用
(3)len,表示整个数据包的长度
(4)messige id,表示这个包的流水号,回包应该相同
数据:
(1)数据的长度最好是16的倍数,16*N,这样在使用加密的时候,不用担心数据的长度问题(aes128加密)。
包尾:
(1)一般为crc校验位
注:数据帧的长度一定要确定,否则出现粘包的时候,无法处理
如下介绍流水号的生成方法:
uint32_t get_mesid(void)
{
static uint32_t messageid;
if(messageid == 0xffffffff)
{
messageid = 1;
}
else
{
messageid++;
}
return messageid;
}