您的位置:首页 > 产品设计 > UI/UE

一接收数据将其存入deque里

2014-03-19 10:26 10 查看
全局变量 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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  deque recv