我需要能够定界二进制数据流。我当时正在考虑使用类似ASCII EOT(传输结束)字符的方法来执行此操作。
但是我有点担心-我怎么能确定用于此(0b00000100)的特定二进制序列不会出现在我自己的二进制序列中,从而对定界给出错误的肯定?
换句话说,如何最好地处理二进制定界?
编辑:...不使用长度标题。抱歉,以前应该提到这一点。
最佳答案
通常,您以众所周知的格式包装二进制数据,例如使用描述后续数据的固定标头包装。如果要在未知数据流中查找分度符,通常需要转义序列。例如,像HDLC之类的东西,其中0x7E是帧宽度。必须对数据进行编码,以便如果数据内部有0x7E,则将其替换为0x7D,然后是原始数据的XOR。数据流中的0x7D同样被转义。
关于networking - 定界二进制序列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8541766/