我在windows下发送一个结构体如下(不知道代码有没有什么问题),对方在linux下接收它,请问接收代码怎么写才不会出现丢失数据啊,谢谢您了  
  struct AA
{
    char save[7];                
            int length;                
            int  msgtype; 
    char name[8];
};
    AA aa;
memset(&aa,0,sizeof(aa));
        strcpy(aa.save,"jonsen");
        aa.length=8;
        aa.msgtype=2;
strcpy(aa.cc,"maidiaa");
        char mainbuff[512];
        memset(&mainbuff,0,sizeof(mainbuff));
        memcpy(&mainbuff,&aa,sizeof(aa));
send(client_sock,mainbuff,512,0);

解决方案 »

  1.   

    tcp已经处理了丢失数据的情况,如果丢失数据,tcp会告诉你响应的出错码,这个时候你就是根据错误码进行分析。好好理解下tcp是可靠的,面向连接的协议。
      

  2.   

    如果都是大端(big-end)或都是小端(little-end)就不必了。
      

  3.   

    都加上
    #progam pack-----------------------------------------------
    http://www.wantsoft.com
    隐形者软件代码交流博客
    -----------------------------------------------
      

  4.   

    char save[8];  //改为8吧,在接收端还原结构的时候不用考虑字节对齐的问题了或者,收发两端的程序都加上
    #pragma pack(1)