首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

Socket通信发送和解析出现异常

2013-01-07 
Socket通信发送和解析出现错误客户端发送关键代码:structProtocal_1protocal_1Word type163int send_le

Socket通信发送和解析出现错误
客户端发送关键代码: 
                struct  Protocal_1   protocal_1;
                Word type=163;
               int send_length=sizeof(type)+4+sizeof(protocal_1);//=4026
              char *pcreate=(char *)malloc(send_length);
               memset((char *)pcreate,0,send_length);
               memcpy((char *)pcreate,(Word *)&type,sizeof(type));//前两个字节放type=163
               memcpy((char *)(pcreate+sizeof(type)),(char *)&send_length,sizeof(send_length));//中间四个字节放发送长度4026      
               memcpy((char *)(pcreate+sizeof(type)+sizeof(send_length)),(char *)&protocal_1);//后面放结构体
               Sendbuf(pcreate,4026);//省写,发送

服务端解析:    Word type;
                  int s_length=4026;
          char *buff=(char *)malloc(s_length);
          memset(buff,0,s_length);
          ReceiveBuf(buff,s_length);//接收
          
          memcpy((char *)&type,buff,sizeof(type));

          ShowMessage(type);
          free(buff);
            
错误,为什么服务端输出的type值是65072
希望高手能指出错误,并给出不足,立马会结贴,谢谢了!




[解决办法]
我的意思是说,如果网络传输不正常,可能会出现丢包或粘包的现象,这样会扰乱你的通讯包。所以,对于你的这个结构,建议最后再加一个校验和。确保每次接收到的包都是一个合(和谐)法的包

热点排行