接收server发来的消息,大家帮我看看这样的情况应该怎样处理?(见内)
该程序接收server发来的1条消息,内容假设为"123456789",通过以下方法接收和处理()
void CWorkSocket::OnReceive(int nErrorCode) //CWorkSocket继承CAsyncSocket
{
TCHAR buff[4096+1];
int nRead = Receive(buff, 4096);
switch (nRead)
{
case 0: //接收数据数目为0个
Close();
break;
default: // 接收数据
int nUsed;
CConnectThread *pThread;
pThread = (CConnectThread *)AfxGetThread();
pThread->IncReceivedBytes(nRead);
// 添加数据
nUsed = m_Request.AddData(buff, nRead);
if (m_Request.IsComplete())
{
//OnHttpRequest(&m_Request)此方法为处理具体接收到的数据
((CHttpSrv*)(pThread->m_pWndServer))->OnHttpRequest(&m_Request);
m_Request.Reset();
}
break;
}
CAsyncSocket::OnReceive(nErrorCode);
}
----------------------------------------------------------
现在server把原来的1条消息变成2条发过来了,即第1条"1234567" ,第2条"89"
上面的方法可能只能接收其中的一条,然后就执行别的流程了,我怎样才能使其2条消息都能接收??(这样我才能取到完整的数据) 谢谢
也不知道我说清楚了没有,上面给的程序可能很简单不完整。