更新 src/Netra.cpp
This commit is contained in:
@@ -185,6 +185,21 @@ namespace QCL
|
||||
}
|
||||
}
|
||||
|
||||
bool TcpServer::isClientDisconnected(int clientSock)
|
||||
{
|
||||
char tmp;
|
||||
ssize_t n = recv(clientSock, &tmp, 1, MSG_PEEK | MSG_DONTWAIT);
|
||||
if (n == 0)
|
||||
return true; // 对端有序关闭
|
||||
if (n < 0)
|
||||
{
|
||||
if (errno == EAGAIN || errno == EWOULDBLOCK)
|
||||
return false; // 只是暂时无数据
|
||||
return true; // 其它错误视为断开
|
||||
}
|
||||
return false; // 有数据可读
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 获取当前所有客户端Socket副本(线程安全)
|
||||
* @return 包含所有客户端socket的vector副本
|
||||
|
||||
Reference in New Issue
Block a user