我在客户端这样发送一个结构体:
UpdateData();
SEND *Send=new SEND;
SEND *Recv=new SEND;
strcpy(Send->addr,m_addr);
Send->addr[m_addr.GetLength()]='\0';
strcpy(Send->name,m_name);
Send->name[m_name.GetLength()]='\0';
//ZeroMemory(&Send,sizeof(Send));
send(destSocket,(char*)(Send),sizeof(SEND),0);
recv(destSocket,(char*)(Recv),sizeof(SEND),0);
..................
在服务器端这样接收:
UINT sendtoclient(void *cs)
{
SOCKET clientSocket=(SOCKET)cs;
int rec=0;RECV *Recv=new RECV;
rec=recv(clientSocket,(char*)(Recv),sizeof(RECV),0);
if(rec==0||rec==SOCKET_ERROR)
{
AfxMessageBox("Server Recv error",0);
return false;
}
int sen=send(clientSocket,(char*)(Recv),sizeof(RECV),0);
if(sen==SOCKET_ERROR)
{
AfxMessageBox("send error",0);
return false;
} ExitThread(0);
return 1;
}
但是我在客户端却收不到来自服务器端的数据,请各位帮我诊断一下!
谢谢!
UpdateData();
SEND *Send=new SEND;
SEND *Recv=new SEND;
strcpy(Send->addr,m_addr);
Send->addr[m_addr.GetLength()]='\0';
strcpy(Send->name,m_name);
Send->name[m_name.GetLength()]='\0';
//ZeroMemory(&Send,sizeof(Send));
send(destSocket,(char*)(Send),sizeof(SEND),0);
recv(destSocket,(char*)(Recv),sizeof(SEND),0);
..................
在服务器端这样接收:
UINT sendtoclient(void *cs)
{
SOCKET clientSocket=(SOCKET)cs;
int rec=0;RECV *Recv=new RECV;
rec=recv(clientSocket,(char*)(Recv),sizeof(RECV),0);
if(rec==0||rec==SOCKET_ERROR)
{
AfxMessageBox("Server Recv error",0);
return false;
}
int sen=send(clientSocket,(char*)(Recv),sizeof(RECV),0);
if(sen==SOCKET_ERROR)
{
AfxMessageBox("send error",0);
return false;
} ExitThread(0);
return 1;
}
但是我在客户端却收不到来自服务器端的数据,请各位帮我诊断一下!
谢谢!
如:
memset(recv, 0, sizeof(RECV));
退出线程。将接收放到循环体中,试试看!