mfc UDP通信中,发送的缓存是一个结构体,结构体里面有个成员变量时指针(动态数组),但是接收不到数组 比如我发送了一个结构图:
{     
     int  num;   
    int   *value;} value动态开辟内存,  value =new int[num]  ,并且数组都赋值了发送出去了,接收了到num的值,但是value没有怎么回事?? UDP通信

解决方案 »

  1.   

    在网络上你要自己定义包的格式,这有socket例子,传输结构的,你找一个看看:
    http://download.csdn.net/detail/geoff08zhang/4571358
      

  2.   

    {     
         int  num;   
        int   *value;} 这个结构体大小才8个字节,直接发送结构体是不行的发送value, 指定发送长度是num
    或者这样写:
     char szSend[4096] = {0}, *p = szSend;
     *(int*)p = s.num;
     p += sizeof(int);
     memcpy(p, s.value, s.num);
    send(szSend, 4+s.num);收到之后可这样解析
    char szRecv[4096] = {0}, *p = szRecv;
    recv(szRecv, ...)
    s.num = *(int*)p;
    p += 4;
    s.value = new int[s.num];
    memcpy(s.value, p, s.num);