最近在设计一套 tcp 层的通信协议。
参考众多协议后发现大招有以下几种类型:
1.使用分隔符 + content-length 方式确定协议包大小
最常见的就是 http 了, header 部分用\r\n 来划分, body 部分用 content-length 来确定。
2.使用特殊字符做分隔
ASCII 码表上的特殊字符 STX 、 ETX 、 EOT 等组合。如果消息体中有相同的组合,就很容易被当成消息包的结束。
3.使用定长的消息,余下空白用 0 填充。
目前的需求是定制一套移动消息推送协议,各位看用哪种方式比较易于实现。主要用于解决 tcp 拆包展包的问题。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.