From 154cbc868adbd8dea05b4d78969f3b2e6a039463 Mon Sep 17 00:00:00 2001 From: Quella Date: Wed, 15 Oct 2025 12:53:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20src/Netra.cpp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Netra.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/Netra.cpp b/src/Netra.cpp index 1deba5b..19e5f2e 100644 --- a/src/Netra.cpp +++ b/src/Netra.cpp @@ -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副本