From dd7d66f69e730df7e4c2aef1b4385c6d7a0c421e Mon Sep 17 00:00:00 2001 From: savis <106487343+savisxss@users.noreply.github.com> Date: Fri, 26 Dec 2025 04:53:45 +0100 Subject: [PATCH] Enable TCP_NODELAY to reduce network latency --- src/libthecore/socket.cpp | 15 +++++++++++++++ src/libthecore/socket.h | 1 + 2 files changed, 16 insertions(+) diff --git a/src/libthecore/socket.cpp b/src/libthecore/socket.cpp index 1e939df..6f86abd 100644 --- a/src/libthecore/socket.cpp +++ b/src/libthecore/socket.cpp @@ -231,6 +231,7 @@ socket_t socket_accept(socket_t s, struct sockaddr_in *peer) socket_nonblock(desc); socket_lingeroff(desc); + socket_nodelay(desc); return (desc); } @@ -272,6 +273,7 @@ socket_t socket_connect(const char* host, WORD port) socket_rcvbuf(s, 233016); socket_timeout(s, 10, 0); socket_lingeron(s); + socket_nodelay(s); /* 연결요청 */ if ((rslt = connect(s, (struct sockaddr *) &server_addr, sizeof(server_addr))) < 0) @@ -538,3 +540,16 @@ void socket_keepalive(socket_t s) return; } } + +void socket_nodelay(socket_t s) +{ + int opt = 1; + + if (setsockopt(s, IPPROTO_TCP, TCP_NODELAY, (const char*) &opt, sizeof(opt)) < 0) + { + sys_err("setsockopt: TCP_NODELAY: %s", strerror(errno)); + return; + } + + sys_log(1, "SYSTEM: %d: TCP_NODELAY enabled", s); +} diff --git a/src/libthecore/socket.h b/src/libthecore/socket.h index 154f174..dfed657 100644 --- a/src/libthecore/socket.h +++ b/src/libthecore/socket.h @@ -22,6 +22,7 @@ void socket_block(socket_t s); void socket_dontroute(socket_t s); void socket_lingeroff(socket_t s); void socket_lingeron(socket_t s); +void socket_nodelay(socket_t s); void socket_sndbuf(socket_t s, unsigned int opt); void socket_rcvbuf(socket_t s, unsigned int opt);