各位大哥哥!!根据协议可能接收到多个结构体。
还原时,我怎么区分收到的是那个呢?
是根据大小吗?

解决方案 »

  1.   

    自己定义包头,例如:
    包头+BufferLen(接下来的数据长度)+Buffer+校检码。其中根据包头就可以分别出属于那个结构的数据了。
      

  2.   

    TCP是流式的。TCP它是确保数据发送。
    其实你要先明白网络的分层概念。
    你这里指的数据包,是“应用层”里的数据包,也就是你自己定义的数据包(或一个数据结构)。我估计你是把“包”这个概念也考虑进去了,其实是没必要的,因为TCP是流式的,只要你根据你自己定义的结构直接发送或接收就可以了。当然了,很多时候还要考虑你程序的通讯模型。(具体根据你的程序的结构)包头(作用是用来区别其他数据包的一个标识)
    数据长度标志--告诉程序接下来应该接收多长的数据。
    数据--你的数据。
    校检码--一般用这个来确保数据的完整性。
      

  3.   

    谢谢各位了.
    但是我还是不大明白,谁能给我个demo吗?[email protected]
    或联系我
    MSN: [email protected]
      

  4.   

    我晕,我晕,我晕晕晕!
    TCP要自己封包解包。
      

  5.   

    错!基本上没有个高层的数据包到有用来路由的以太网头在以太网头有protocol你根据这个值来判断包的类型再确定他 应该 按哪种包来解!每种包的格式是固定的如果不明白就加我qq:22070213