我初学结构体,不知道下面哪错了,请指教
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 );
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 );
{
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 );
应该是:
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;
}