全局变量 deque<char>RecvDeq;
void AppendDeq(CTCPClient_CE *pTCPClient)
{
char recvBuf[MAX_BUFF_SIZE];
ZeroMemory(recvBuf,sizeof(char)*MAX_BUFF_SIZE);
int nRecv =0;
//Sleep(200);
while(1)
{
nRecv = recv(pTCPClient->m_socket,recvBuf,MAX_BUFF_SIZE,0);
if(nRecv == SOCKET_ERROR)
{
CString str;
str.Format("Receive data failed,error code:%d",WSAGetLastError());
pTCPClient->OnError(pTCPClient->m_pOwnerWnd,WSAGetLastError());
pTCPClient->OnDisConnect(pTCPClient->m_pOwnerWnd);
//closesocket(pTCPClient->m_socket);
//ReleaseLinkMemory(pHead);
break;
}
else if(nRecv == 0)
{
pTCPClient->OnError(pTCPClient->m_pOwnerWnd,WSAGetLastError());
pTCPClient->OnDisConnect(pTCPClient->m_pOwnerWnd);
closesocket(pTCPClient->m_socket);
//ReleaseLinkMemory(pHead);
int index = MessageBox(pTCPClient->m_pOwnerWnd->m_hWnd,"与服务器断开连接,请重新登录","提示",MB_YESNO|MB_ICONQUESTION);
if(index == IDYES)
SendMessage(pTCPClient->m_pOwnerWnd->m_hWnd,WM_RELOGIN,0,0);
break;
}
if(nRecv>0)
{
for(int i=0;i<nRecv;i++)
RecvDeq.push_back(recvBuf[i]);
}
ZeroMemory(recvBuf,sizeof(char)*MAX_BUFF_SIZE);
//if(nRecv>0 && nRecv<MAX_BUFF_SIZE)
//break;
nRecv = 0;
}
ZeroMemory(recvBuf,sizeof(char)*MAX_BUFF_SIZE);
nRecv = 0;
//return RecvDeq;
}