From 140decf42e3d270018dbc59113b51b0a4a96afc9 Mon Sep 17 00:00:00 2001 From: Quella777 <2892744389@qq.com.com> Date: Thu, 14 Aug 2025 16:18:21 +0800 Subject: [PATCH] update --- include/Netra.hpp | 2 +- src/Netra.cpp | 19 ++++++------------- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/include/Netra.hpp b/include/Netra.hpp index d662435..021c71e 100644 --- a/include/Netra.hpp +++ b/include/Netra.hpp @@ -49,7 +49,7 @@ namespace QCL * @param clientSock 客户端Socket描述符 * @param flag:false 非阻塞模式,true 阻塞模式 */ - char *receiveFromClient(int clientSock, bool flag = true); + std::string receiveFromClient(int clientSock, bool flag = true); /** * @brief 获取连接客户端的IP和端口 diff --git a/src/Netra.cpp b/src/Netra.cpp index ffd5f11..0f04a70 100644 --- a/src/Netra.cpp +++ b/src/Netra.cpp @@ -156,26 +156,19 @@ namespace QCL /** * @brief 单次接收指定客户端数据 * @param clientSock 客户端socket - * - * 注意:此函数在当前设计中未在线程中使用,仅演示用。 */ - char *TcpServer::receiveFromClient(int clientSock, bool flag) + std::string TcpServer::receiveFromClient(int clientSock, bool flag) { char buffer[1024]; std::memset(buffer, 0, sizeof(buffer)); - ssize_t bytesReceived = 0; - - if (flag) - bytesReceived = recv(clientSock, buffer, sizeof(buffer) - 1, 0); - else - bytesReceived = recv(clientSock, buffer, sizeof(buffer) - 1, MSG_DONTWAIT); + int flags = flag ? 0 : MSG_DONTWAIT; + ssize_t bytesReceived = recv(clientSock, buffer, sizeof(buffer) - 1, flags); if (bytesReceived <= 0) - { - return nullptr; - } - return strdup(buffer); // 返回动态分配的字符串副本 + return {}; + + return std::string(buffer, bytesReceived); } /**