socket通信协议一般是怎么设计的?即发送一个包如何判断是什么包?如何确定包的结束和包的完整性?
我的做法是   包头+内容+特殊字符结束
但这样肯定是不好的

解决方案 »

  1.   

    就是包头+包体
    包头固定,如HEADER { unsigned int len; unsigned int cmd; }
    包体变长,根据包头的cmd来转换不同的结构指针,好像这么简单
    一个包总长==>包头的len==>sizeof(HEADER)+sizeof(包体)
    收到N外包,每个包是通过包头的len作为长度,取出len的内容作为一个包,处理,再取...
    没了。
      

  2.   

     刚给一个人回复了下常用的做法,也可以用到这里,其中对包的定义有些说明,
     一般我所说的即是通用做法。http://topic.csdn.net/u/20071210/21/6dd743be-d8ab-4192-9780-5e948652a67b.html
      

  3.   

    我觉得可以参考一下如tcp/ip里面协议包里的封装格式。