我应该如何设计消息协议(protocol),以便区分用户数据和消息终止。
例如,我从用户那里获取输入并通过 TCP/IP 将其发送到客户端,现在客户端需要知道消息的长度,我认为我使用某种客户端识别该消息的终止已经到达终点了吗?
如何在 C++ 中实现类似的操作。我正在使用 Windows 套接字
最佳答案
特定于应用程序的协议(protocol)的一个相当常见的策略是在消息之前对消息长度进行编码,而不是使用终止。因此,前几个字节(多少个不同)指定消息长度,而一些特殊代码(通常是所有位打开或所有位关闭)指定需要延续的超长消息。
编辑:已请求提供示例。假设我们设计的协议(protocol)使消息的最大大小为 255 字节,并且我们想要发送字符串“hi”。我们的协议(protocol)消息将由三个字节组成:2
、104
、105
。第一个字节 2
告诉我们后面的消息的长度。第二个和第三个字节,104
和 105
,是 h
和 i
的 ASCII。
关于c++ - 消息传递协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1333109/