之前写了一下socket编程中半包、粘包的处理点击打开链接,这篇再写写另一个相关问题,逻辑数据的处理
物理数据包与逻辑数据包:
首先说明的是,socket传输中物理数据包、逻辑数据包的概念是我自己臆想、“定义”的,主要是方便我后面去描述问题.那么什么是我所说的物理数据包与逻辑数据包呢?
举个例子,假如我想传送一段文本“这篇博客写的是socket编程[oc](逻辑数据的处理)”,可能因为某些考虑,我觉得这段文本太长了,于是决定在传输时进行分段发送,先发送“这篇博客写的是socket”,再发送“[oc](逻辑数据的处理)”,于是在传输过程中就产生了两个物理数据包。而文本被拆分后,每个一单独的文本对于接收者来说并没有实际的意义,无法完整描述出语句的意思,必需两段文字都接收到,拼凑到一起,才能真正得到正确表意的完整语句,这个能正确表意的语句就是所谓的逻辑数据包(能产生真正的逻辑意义)。
再举个例子,假如我想传送我的好友列表,“test1、test2、test3、test4、test5、test6”,在传输过程中,我将这个列表分成了三段去传输,于是就产生了三个物理数据包,“test1、test2”、“test3、test4”、“test5