小弟的结构定义如下:
typedef struct t_Connection_Command_Packet//包头
{
char szCommand[10];
unsigned int i_CommandId;
unsigned int i_PacketLength;//此长度不包含包头长度
char szIp[20];
char PhoneNo[20];
}COMMANDHEAD;typedef struct t_Data_Packet
{
COMMANDHEAD commandheads;
char PacketSound[4096];
int  PacketSize;
}DataPacket;
接收函数为:
LRESULT  CMobileServerDlg::OnSocketEvent(WPARAM wParam, LPARAM lParam)
{
int err;                    //错误信息
    int tolen = sizeof(localsocket);
int ret;
if (WSAGETSELECTERROR(lParam))
{
AfxMessageBox("接收事件函数出错");
}
switch(WSAGETSELECTEVENT(lParam))
{
case FD_ACCEPT:
s_acceptsocket = accept(s_listensocket,(struct sockaddr*)&localsocket,&i_Sizeofaddr);
WSAAsyncSelect(s_acceptsocket,this->m_hWnd,WM_SOCKET,FD_READ | FD_WRITE | FD_CLOSE);
break;
case FD_READ:
memset(bin_content,0,sizeof(bin_content));
i_RecvSize = recv(s_acceptsocket,(char*)bin_content,sizeof(bin_content),0);
memcpy((char *)&datapackets,bin_content,sizeof(bin_content));
if(i_RecvSize==SOCKET_ERROR)
{
MessageBox("ERROR");
}
else
{
strErrorMessage.Format("%s",datapackets.commandheads.szCommand);
MessageBox(strErrorMessage);
}
break;
default:
break;
}
return 1;
}
现在我每次MessageBox(strErrorMessage),发现就只能收到一位,各位大哥帮小弟看看到底是怎么回事,小弟我急死了.谢谢,谢谢了