folkert van heusden
2021-11-19 c2da7b7c33daf3d19c13f56ac3850ad3111fc9b6
Use TCP_CORK instead of Nagle to control flushing
1个文件已修改
15 ■■■■ 已修改文件
examples/test-tcp/main.c 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;