Tcp 作为实际数据出现在字节流中的分隔符

Tcp 作为实际数据出现在字节流中的分隔符,tcp,byte,delimiter,Tcp,Byte,Delimiter,假设您有一个在TCP或UDP流上发送信息的规范,并且您有一个以STX和EOT字节分隔的接收字节序列。例如,如何处理实际数据中出现的EOT字节?我认为这是可能的:消息中的大多数字节以定义的顺序表示数字(即,它不仅仅是字节形式的ascii文本),因此EOT是字节0x04,这是数据中可能出现的数字。规范对此不明确:我是否应该一直关注EOT的最后一次发生而忽略两者之间的事件?我见过的其他类似规范甚至可以处理同一TCP/UDP消息中的多条消息:例如,在一条TCP/UDP消息中STX some_data E

假设您有一个在TCP或UDP流上发送信息的规范,并且您有一个以STX和EOT字节分隔的接收字节序列。例如,如何处理实际数据中出现的EOT字节?我认为这是可能的:消息中的大多数字节以定义的顺序表示数字(即,它不仅仅是字节形式的ascii文本),因此EOT是字节0x04,这是数据中可能出现的数字。规范对此不明确:我是否应该一直关注EOT的最后一次发生而忽略两者之间的事件?我见过的其他类似规范甚至可以处理同一TCP/UDP消息中的多条消息:例如,在一条TCP/UDP消息中STX some_data EOT STX more_data EOT。在本例中,您不能只查看最后一条EOT,因为它实际上是两条独立的消息。那你会做某种形式的逃跑吗

这类事情通常是怎么处理的?我在谷歌上找不到任何东西,但可能我没有使用最好的搜索词。

通常“协议应该设计得很好,这样消息要么不包含分隔符,要么使用转义机制包含分隔符,或者具有已知的长度,以便您知道消息的结束位置,而不必依赖于分隔符

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