在服务器端OnClose中怎么知道是哪个客户断开了连接

flight_lcf 2004-11-21 08:42:07
在服务器端OnClose中怎么知道是哪个客户断开了连接
...全文
138 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Hotthing 2004-11-21
  • 打赏
  • 举报
回复
BOOL CConnectSocket::HasConnectionDropped(void)
{
BOOL bConnDropped = FALSE;
INT iRet = 0;
BOOL bOK = TRUE;

if (m_hSocket == INVALID_SOCKET)
return TRUE;

struct timeval timeout = { 0, 0 };
fd_set readSocketSet;

FD_ZERO(&readSocketSet);

FD_SET(m_hSocket, &readSocketSet);

iRet = ::select(0, &readSocketSet, NULL, NULL, &timeout);
bOK = (iRet > 0);

if(bOK)
{
bOK = FD_ISSET(m_hSocket, &readSocketSet);
}

if(bOK)
{
CHAR szBuffer[1] = "";
iRet = ::recv(m_hSocket, szBuffer, 1, MSG_PEEK);
bOK = (iRet > 0);
if(!bOK)
{
INT iError = ::WSAGetLastError();
bConnDropped = (( iError == WSAENETRESET) ||
(iError == WSAECONNABORTED) ||
(iError == WSAECONNRESET) ||
(iError == WSAEINVAL) ||
(iRet == 0));
}
}
return(bConnDropped);
}
oyljerry 2004-11-21
  • 打赏
  • 举报
回复
每个socket对应一个客户端
sharkhuang 2004-11-21
  • 打赏
  • 举报
回复
socket是一一对应的

18,355

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧