c++ - 消息传递协议(protocol)

标签 c++ message protocols

我应该如何设计消息协议(protocol),以便区分用户数据和消息终止。

例如,我从用户那里获取输入并通过 TCP/IP 将其发送到客户端,现在客户端需要知道消息的长度,我认为我使用某种客户端识别该消息的终止已经到达终点了吗?

如何在 C++ 中实现类似的操作。我正在使用 Windows 套接字

最佳答案

特定于应用程序的协议(protocol)的一个相当常见的策略是在消息之前对消息长度进行编码,而不是使用终止。因此,前几个字节(多少个不同)指定消息长度,而一些特殊代码(通常是所有位打开或所有位关闭)指定需要延续的超长消息。

编辑:已请求提供示例。假设我们设计的协议(protocol)使消息的最大大小为 255 字节,并且我们想要发送字符串“hi”。我们的协议(protocol)消息将由三个字节组成:2104105。第一个字节 2 告诉我们后面的消息的长度。第二个和第三个字节,104105,是 hi 的 ASCII。

关于c++ - 消息传递协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1333109/

相关文章:

c# - 服务器-客户端消息的快速文本解析器 - MMO

c++ - 如何实现协议(protocol)适配器

javascript - Sencha Touch 2 : Ext. Msg.show 并点击任意位置隐藏

streaming - MPEG-DASH 和 RTSP 有什么区别?

svn - VisualSVN 服务器协议(protocol)

c++ - boost::graph add_vertex 编译错误

c++ - 指针和对象切片

c++ - 输入与输出迭代器 - 命名约定

c++ - C++ 标准甚至定义了 "lock-free"的含义吗?

python - 如何有选择地抑制遵循特定模式的某些错误消息?