1

假设您有一个关于在 TCP 或 UDP 流上发送信息的规范,并且您有一个接收到的字节序列,这些字节用 STX 和 EOT 字节分隔。例如,您如何处理实际数据中出现的 EOT 字节?我认为这是可能的:消息中的大多数字节以定义的顺序表示数字(即它不仅仅是字节形式的 ascii 文本),因此 EOT 是字节 0x04,这是一个可能出现在数据中的数字。规范对此尚不清楚:我是否应该始终查看 EOT 的最后一次出现并忽略其间的那些?我见过的其他类似规范甚至可以处理同一 TCP/UDP 消息中的多条消息:例如,一条 TCP/UDP 消息中的 STX some_data EOT STX more_data EOT。在这种情况下,您不能只查看最后一个 EOT,因为它实际上是 2 条单独的消息。

这种事情一般是怎么处理的?我在谷歌上找不到任何东西,但也许我没有使用最好的搜索词。

4

1 回答 1

3

“通常”协议应该设计得很好,以便消息不包含分隔符,使用转义机制来包含分隔符,或者具有已知长度,以便您知道消息在哪里结束而不必依赖分隔符.

例如,如果消息是固定大小的整数,您就会知道在整数中遇到的 EOT 不是分隔符。

于 2013-09-12T08:47:03.907 回答