如何处理有长度的服务器和客户端之间的消息?

时间:2017-06-23 15:29:35

标签: tcp stream packet

如果服务器在发送实际消息之前发送消息长度,例如:

   5ABCDE10FGHIJKLMNO

其中'5'是消息'ABCDE'的长度,'10'是消息FGHIJKLMNO的长度。

根据缓冲区大小,它是否能以缓冲区的任何顺序到达客户端:

   5A BCD  E1  0FGHI  JKLMNO  
   5ABCD  E1  0F GHI  JKLMNO  
   5A BC D  E1  0F GHI  JKLM NO  
   ... so on

即。当你从插座读取时,比如说,你得到'5A'并且在第二次阅读时得到'BCD'。这有可能吗?

如果是这样,我是否需要手动处理有关数据如何到达的情况和可能性,即是否存在长度,消息是否完整等等以汇总消息?

0 个答案:

没有答案