我初学结构体,不知道下面哪错了,请指教
struct ClientRequest
{
int a;
int b;
int c;
};
ClientRequest Request;
ClientRequest.a=1;
ClientRequest.b=2;
ClientRequest.c=3;
memset(sendBuf,&Request,sizeof(Request));
send(client_sock,sendBuf,sizeof(sendBuf)+1, 0 );

解决方案 »

  1.   

    我看来看去你这句就是错的.struct 

    int a; 
    int b; 
    int c; 
    }ClientRequest,*LPClientRequest;
     
    ClientRequest Request; 
    ClientRequest.a=1; 
    ClientRequest.b=2; 
    ClientRequest.c=3; char *buf = &ClientRequest
    send(client_sock,buf,sizeof(ClientRequest), 0 ); 
      

  2.   

    纠正一下.char *buf = &ClientRequest 
    应该是:
    char *P = (char *)&ClientRequest;
    接收的话是:
    ClientRequest Request; 
     char *P = (char *) &Request;int len = sizeof(Request);
      while(len){
        int ret = recv(sock_client, P, len, 0);
        if(SOCKET_ERROR == ret){
          count<<"Thread:"<<GetCurrentThreadId()<<" recv过程发生错误:"<<WSAGetLastError()<<endl;
          break;
        }
        if(!ret){
          count<<"Thread:"<<GetCurrentThreadId()<<" recv过程发生中连接已断开!"<<endl;
          break;
        }
        len -= ret;
        P += ret;
        if(len == 0)
          cout<<"Thread:"<<GetCurrentThreadId()<<" received from:"<<sock_client<<": A.head="<<A.head<<endl;
      }