1:发送封包
char buffS[256]="Qww*王子凤*25*192-02-02*男*本科*未婚*家住:北京某霜地\0";
::send(CCS,buffS,256,0);格式:以*分开,在接收后,分别读出Qww,王子凤,25...之后,在把相应的数据添加到某些地方这样发送肯定是没封包,如何要应该怎么封包,有源码最好
E_mail:[email protected]:接收解包
char buffS[256]="\0";
::recv(lskt,buffS,256, 0);
这样接收没解包,如何解包 

解决方案 »

  1.   

    不懂封包!
    你为啥老想着封包、解包这两个概念那?你这东西,抛开socket的send和recv,就是对字符串的一个组合和解析,你都知道格式了,你把字符串解析了,不就完了。
    为啥非得封包、解包。
      

  2.   

    你也可以建立一个结构体。struct databuffer
    {
        int length;
        char Qww[3];
        char name[6];
        int age;
        char birthday[10];
       ... ...
    }把所有的字段都加进去。发送的时候,先把填充结构体,然后,按结构体大小,发送。
    接收的时候,按照结构体长度,再循环接收一个完整的结构体,这样字段不久一一对应上了。
      

  3.   

    这哥们一直折腾这个,给你做个了解:
    发送方:typedef struct _XXX_
    {
      ...;
    } XXX, * PXXX;XXX xxx;if (send(socket, &xxx, sizeof(XXX), 0) == sizeof(XXX))
      ...
    接收方:typedef struct _XXX_
    {
      ...;
    } XXX, * PXXX;XXX xxx;if (recv(socket, &xxx, sizeof(XXX), 0) == sizeof(XXX))
      ...
      

  4.   

    忘了说了,注意双方内存对齐方式一致,结构定义加上:#pragma pack(X)
    ...
    #pragma pack()