diff --git a/src/dllama-api.cpp b/src/dllama-api.cpp index c981bab..1d48173 100644 --- a/src/dllama-api.cpp +++ b/src/dllama-api.cpp @@ -560,7 +560,11 @@ static void server(AppInferenceContext *context) { HttpRequest request = HttpRequest::read(clientSocket); printf("🔷 %s %s\n", request.getMethod().c_str(), request.path.c_str()); Router::resolve(request, routes); + #ifdef _WIN32 + closesocket(clientSocket); + #else close(clientSocket); + #endif } catch (NnReadNetworkException& ex) { printf("Read socket error: %d %s\n", ex.code, ex.message); } catch (NnWriteNetworkException& ex) { diff --git a/src/nn/nn-network.cpp b/src/nn/nn-network.cpp index 8b91233..7da735e 100644 --- a/src/nn/nn-network.cpp +++ b/src/nn/nn-network.cpp @@ -222,7 +222,11 @@ int createServerSocket(int port) { void closeServerSocket(int serverSocket) { shutdown(serverSocket, 2); + #ifdef _WIN32 + closesocket(serverSocket); + #else close(serverSocket); + #endif } int acceptSocket(int serverSocket) { @@ -313,7 +317,11 @@ std::unique_ptr NnNetwork::serve(int port) { delete[] ports; shutdown(serverSocket, 2); + #ifdef _WIN32 + closesocket(serverSocket); + #else close(serverSocket); + #endif printf("⭕ Network is initialized\n"); return std::unique_ptr(new NnNetwork(nSockets, sockets)); } @@ -359,7 +367,11 @@ NnNetwork::~NnNetwork() { delete[] recvBytes; for (NnUint i = 0; i < nSockets; i++) { shutdown(sockets[i], 2); + #ifdef _WIN32 + closesocket(sockets[i]); + #else close(sockets[i]); + #endif } delete[] sockets; printf("⭕ Network is closed\n");