如何实现?
问题:在数据传输时,上层应用协议发送时如何为待传输的数据打包(加一包头,并限制大小),接收方对该数据拆包,基于TCP协议实现、也就是如何为TCP字节流确定固定的边界!多谢!

解决方案 »

  1.   

    只要加几个变量控制一下,比如服务器发送8000字节,客户端OnReceive接收到1000字节时,不要退出,继续读,直到总共读到8000自己位置。
      

  2.   

    好象只有人为的加,不然就用udp/tp
      

  3.   

    TCP是流式传输,它不会区分你发送的是否有边界;你可以尝试一下两种方法:
    1 用固定流长法 每次发送固定长度的字节流,然后间隔一定的时间再发送下个流
    2 用自定义的流(长度可变)发送,每个流都有一个留头,留头里面有流的类型、溜的长度等信息。
      客户端每次recv()时判断是不是新的流,再分析是哪种类型的流,然后临时分配一个相应长度的内存空间来全部接受该流。如果还有其他办法,请高手不灵赐教!!!