TCP/IP长连接自定义协议解析
一、 自定义协议概览
下面是由终端发送到服务器端的一个自定义报文,我们由这个自定义报文来解释和阐述整个全通信链条过程中的编解码;
发送方 终端数据采集中心
接收方 中心监控服务器
数据域 | 数据类型/长度 | 例(十六进制) | 例说明 | 字节数 |
---|---|---|---|---|
数据包类型 | uint16 | 0X0A,0X00 | 0x0A=10,表示此包为签到请求(小端模式:0x000A) | 2 |
数据包总长度 | uint16 | 0X31,0X00 | 0x0A=10,表示此包为签到请求(小端模式:0x000A) | 2 |
MAC | byte16 | 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 | 表示整个报文的加密 | 16 |
数据包解析结果 | uint8 | 0X00 | 00表示解析成功 | 1 |
终端id | string | 0x01 0x0C 0x32 0x30 0x31 0x36 0x30 0x39 0x30 0x39 0x30 0x30 0x30 0x31 | 0x01表示字符编码方式;将使用设置的编码方式将字符串编码到 byte 序列采集器的序列号201609090001 | 14 |
业务流水号 | uint32 | 0x05 0xD2 0x2D 0x01 | 交易流水号16进制的12DD205=19780101(小端模式) 对数据包进行标识 | 4 |
时间戳 | timestamp | 0x66 0xe4 0x33 0x58 | 时间,把日期转化为Unix时间,然后用四个字节表示 | 4 |
保留1 | uint8 | 0X0A,0X00 | 0x0A=10,表示此包为签到请求(小端模式:0x000A) | 2 |
二、 自定义协议的数据定义
整个全链条包含了以下自定义的数据类型:如下阐述
st