需要手动从stream中识别出数据包来吗?

解决方案 »

  1.   

    回答:是客户端发送数据的时候,应该在报文 加上一个报文头,前面的几个字节说明是哪个客户发送,并记录该报文的长度,类型等等等。服务端接收到的数据,先分析报文头,可以得知哪个客户发送,以及发送了多少字节等等等。
    tcp是流形式,形象点就象流水一般, 所以你得自己分析。
      

  2.   

    定义一个数据包分包头 DATA HEAD 和包身DATA BODY
    head自身长度固定,其中有个字段是记录整个包的长度(HEAD + BODY)recv的时候,先接受HEAD,解析HEAD中的那个字段,然后接受BODY.搞定...
      

  3.   

    那怎么保证Body不会保含Header标志
    比如在传送一个文件时,其中某段数据含有Header标志,被当作包来处理,这就不对了啊。
      

  4.   

    传送文件,你可以这样处理,tcp连接后,先传指定大小的一个包, 这个告诉对方文件的名称,大小,等。
    对方先接收这个包,然后分析文件名称,大小等。接下来就传送实际的文件数据,不要再放head标志的数据了。
      

  5.   

    "header20wwwheaderwwwwwwwwwwwwww"
    header为头,20为数据长度,第二个header你不要故意找它,那么就不会被你发现的