struct data
{
   int ID;
   char str[100];
};

解决方案 »

  1.   

    unsigned char pBuffer[1024];
    struct data pData;
    pData.ID = 1;
    memset(pData.str,1,100);
    memcpy(pBuffer,(char*)pData,szieof(pData));
    然后发pBuffer就可以了.
      

  2.   

    (char*)pData有错: 
    cannot convert from 'struct CClientDlg::data' to 'char *'
      

  3.   

    unsigned char pBuffer[1024];
    data Data;
    pData.ID = 1;
    memset(pData.str,1,100);
    memcpy(pBuffer,(char*)&Data,szieof(pData));
    然后发pBuffer就可以了.
      

  4.   

    memcpy(pBuffer,(char*)&Data,szieof(data));
      

  5.   

    发送: 
    data sendData;
    在Data中填入内容;
    send(sock,(char*)&sendData,sizeof(data),0);  sock为套接字;接收:data recvData;
    recv(sock,(char*)&recvData,sizeof(data),0);
      

  6.   

    发送: 
    data sendData;
    在Data中填入内容;
    send(sock,(char*)&sendData,sizeof(data),0);  sock为套接字;接收:data recvData;
    recv(sock,(char*)&recvData,sizeof(data),0);
      是这么发送的。。我以前问过同样的问题。我试验过事实上是可行的哦:-)通过结构体强制转换发送字节的方式。。或者也可以这样。。定义一个数组。。将结构体的数据通过memcpy复制过去,然后发送这个数组, 这就是简单封包。在接受方在通过解包在memcpy复制到结构体对象中去就可以了。这个数组中还可以同时传输除了结构体之外的其他信息。
      

  7.   

    至于你说的有错的地方 也就是 (char*)pData有错: 
    cannot convert from 'struct CClientDlg::data' to 'char *'
    应该是 (char*)&pData,,,,可能是firebolt2002(霹雳)  兄写忘记了吧。
      

  8.   

    zxfvc(七品VC):我没有乱发啊,我自己的程序就是这么写的。你自己试试。发送接收之前得先建立连接,产生套接字sock。