typedef struct _DataFragment{
 unsigned short sFrame_sum;
 unsigned short sCurrent_Frame;
 unsigned long ulFrame_SeqNum;
 unsigned long ulFrame_CheckNum;
 char cFrame_Flag;
 unsigned char sIP[4];
 unsigned short sPorts;
 unsigned short ulFrame_Size;
 unsigned short ulTraction_ID;
} DataFragment,*PDataFragment;
这是我定义的一个桢头,只发送桢头,用memcpy将桢头拷贝给一个char指针,可不知为什么char的长度却不是该结构体的长度,解包后也不和发送时一样,请问到底应该怎样打包发送!在线等待,急急急!!!解决后一定给分

解决方案 »

  1.   

    是不是你的char里面有字符的字符的结束标志
    解决办法:用2进制方式读数据
      

  2.   

    使用sizeof(DataFragment)得到长度,而不能用char的长度。。
      

  3.   

    DataFragment st;memcpy (pBuffer,st,sizeof (DataFragment));
      

  4.   

    DataFragment YourFrame; char *SendFrame;
     SendFrame=&YourFrame;
     int Length=sizeof(DataFragment);
    Please Send.....
      

  5.   

    Windows会自动加上IP头或其它的协议头,看你所建socket的协议而定
      

  6.   

    你不需要把帧拷给CHAR,直接发帧都行