当数据通过网络传输时,它显然是二进制形式的。
可以是一个数字
1011001
,然后是其他一些数据,可能是
1110100111001
是一起发送的
当他们到达时,我们如何区分他们?是否有一些特殊的标志来表示每个数据的结束?
如果是,我们如何确保它是唯一的,我们不会感到困惑?
您可以定义一个特殊的位串模式作为流的开始或结束,一些协议也这样做,但是您必须使它足够长(例如256位),以至于它不太可能出现在正常的数据流中。
一种更可靠的方法是,如果结束模式出现在正常数据中,则逃避它。你们可能知道它是怎么工作的,因为每个人都在某个时间点接触过在字符串中使用。它们必须转义为
\
。
第三种方法是适用的,如果你提前知道你的流将有多长,所以你可以在实际发送数据之前发送一个长度。
实际细节定义为协议,双方必须遵循协议的结构,无论它是如何定义的。
例如,以太网帧以8字节的序言和帧分隔符开始,每个字节是10101010
(我不确定)
每个数据一般以字节(8位)读取,帧有定义的结构:https://en.wikipedia.org/wiki/Ethernet_frame
每一帧包含一个数据包:
https://en.wikipedia.org/wiki/Network_packet
试着谷歌一下,但我的答案是,有一个定义的结构,如何发送数据