Enable TCP_NODELAY to reduce network latency

This commit is contained in:
savis
2025-12-26 04:53:45 +01:00
parent 2663bb4c9c
commit dd7d66f69e
2 changed files with 16 additions and 0 deletions

View File

@@ -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);
}

View File

@@ -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);