发送端:****(){
         Header head;//一个简单的结构体
head.type=LOGIN_OUT;
head.len=loginDlg.m_strName.GetLength();
m_pSocket->Send((char*)&head,sizeof(head));//头消息
         .............
         strcpy(str,loginDlg.m_strName)
         m_pSocket->Send((char*)&str,sizeof(str));//消息
}
接收端OnReceive(){
         char buff1[sizeof(Header)];
         Receive(buff1,sizeof(buff1));//接受头消息
Header* header=(Header*)buff1;
int len=header->len;
char type=header->type;
if (type==LOGIN_OUT){
                  char buff[RECV_LEN];//RECV_LEN为一个常量
memset(buff,0,sizeof(buff));
Receive(buff,sizeof(buff));//接收消息
                }
         if(type==....){
                       ..........
                      Receive(buff,sizeof(buff));//接收消息
                      .................
                   }
}
我想问:发送端一次发送两个消息,接收端第一个Receive接受头消息后,为什么不接收另外一个消息.不是每次有消息到来都触发OnReceive()函数吗?那么第一个Send和第二个Send()不都是由OnReceive()里的第一个Receive()接受?