您的位置:首页 > 其它

客户端收包线程错误处理

2013-12-06 13:16 232 查看
DWORD CDECL CTalkRoomClientDlg::RecvProc(PVOID lpParam){

int nRet = 0;

DWORD dwError;

CString csFmt;

TCHAR lpBuff[0x100] = {0};

CTalkRoomClientDlg* pDlg = (CTalkRoomClientDlg*)lpParam;

while(TRUE){

if((nRet = recv(pDlg->m_sServer, lpBuff, 0x100, 0)) == SOCKET_ERROR)

{

dwError = GetLastError();

if(WSAEOPNOTSUPP == dwError)

{

csFmt.Format("服务器错误主动关闭:%d", GetLastError());

pDlg->m_ctlListBox.AddString(csFmt);

break;

}else if(WSAECONNRESET == dwError){

csFmt.Format("远程主机强迫关闭了一个现有的连接。:%d", GetLastError());

pDlg->m_ctlListBox.AddString(csFmt);

break;

}

}else if(nRet == 0){// 接受到0字节,与服务器断开连接

csFmt.Format("与服务器断开连接:%d", GetLastError());

pDlg->m_ctlListBox.AddString(csFmt);

break;

}

csFmt.Format(_T("服务器说: %s"), lpBuff);

pDlg->m_ctlListBox.AddString(csFmt);

}

return 0;

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