最近在设计一套 tcp 层的通信协议。
参考众多协议后发现大招有以下几种类型:
1.使用分隔符 + content-length 方式确定协议包大小
最常见的就是 http 了, header 部分用\r\n 来划分, body 部分用 content-length 来确定。
2.使用特殊字符做分隔
ASCII 码表上的特殊字符 STX 、 ETX 、 EOT 等组合。如果消息体中有相同的组合,就很容易被当成消息包的结束。
3.使用定长的消息,余下空白用 0 填充。
目前的需求是定制一套移动消息推送协议,各位看用哪种方式比较易于实现。主要用于解决 tcp 拆包展包的问题。