From c2da7b7c33daf3d19c13f56ac3850ad3111fc9b6 Mon Sep 17 00:00:00 2001 From: folkert van heusden <mail@vanheusden.com> Date: 周五, 19 11月 2021 15:38:35 +0800 Subject: [PATCH] Use TCP_CORK instead of Nagle to control flushing --- examples/test-tcp/main.c | 15 +++++++++++---- 1 files changed, 11 insertions(+), 4 deletions(-) diff --git a/examples/test-tcp/main.c b/examples/test-tcp/main.c index f67df33..814dbf5 100644 --- a/examples/test-tcp/main.c +++ b/examples/test-tcp/main.c @@ -51,17 +51,24 @@ #include "../common/scpi-def.h" size_t SCPI_Write(scpi_t * context, const char * data, size_t len) { - (void) context; - if (context->user_context != NULL) { int fd = *(int *) (context->user_context); + + int state = 1; + setsockopt(fd, IPPROTO_TCP, TCP_CORK, &state, sizeof(state)); + return write(fd, data, len); } return 0; } scpi_result_t SCPI_Flush(scpi_t * context) { - (void) context; + if (context->user_context != NULL) { + int fd = *(int *) (context->user_context); + + int state = 0; + setsockopt(fd, IPPROTO_TCP, TCP_CORK, &state, sizeof(state)); + } return SCPI_RES_OK; } @@ -194,7 +201,7 @@ listenfd = createServer(5025); while (1) { - int clifd, flag = 0; + int clifd, flag = 1; struct sockaddr_in cliaddr; socklen_t clilen; -- Gitblit v1.9.1