From 8b0f4f99f6d4e1b20d0dedab7bc3a64d61e17b3a Mon Sep 17 00:00:00 2001 From: Lion Kortlepel Date: Wed, 19 Jun 2024 16:53:17 +0200 Subject: [PATCH] use thread_local static buffer to receive into, null term manually --- src/Network/VehicleData.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Network/VehicleData.cpp b/src/Network/VehicleData.cpp index baf9ba5..4d3a9ef 100644 --- a/src/Network/VehicleData.cpp +++ b/src/Network/VehicleData.cpp @@ -63,13 +63,13 @@ void UDPRcv() { socklen_t clientLength = sizeof(FromServer); #endif ZeroMemory(&FromServer, clientLength); - std::array Ret {}; - Ret.fill(0); + static thread_local std::array Ret {}; if (UDPSock == -1) return; - int32_t Rcv = recvfrom(UDPSock, Ret.data(), Ret.size(), 0, (sockaddr*)&FromServer, &clientLength); + int32_t Rcv = recvfrom(UDPSock, Ret.data(), Ret.size() - 1, 0, (sockaddr*)&FromServer, &clientLength); if (Rcv == SOCKET_ERROR) return; + Ret[Rcv] = 0; UDPParser(std::string_view(Ret.data(), Rcv)); } void UDPClientMain(const std::string& IP, int Port) {