更新 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副本(线程安全)
|
* @brief 获取当前所有客户端Socket副本(线程安全)
|
||||||
* @return 包含所有客户端socket的vector副本
|
* @return 包含所有客户端socket的vector副本
|
||||||
|
|||||||
Reference in New Issue
Block a user