gpt4 book ai didi

c - 如何在C语言的Unix套接字上禁用Nagle算法?

转载 作者:行者123 更新时间:2023-12-03 09:55:22 25 4
gpt4 key购买 nike

我想在Unix套接字中禁用Nagle的算法,这可能吗?

因为我可以在教程中找到所有用于禁用它的功能,但这仅适用于TCP套接字。这是我的Unix套接字初始化代码。

    struct sockaddr_un local, remote;
u8 str[0xFFFF];
struct client_info cl;

if ((s = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
{
perror("socket");
exit(1);
}

local.sun_family = AF_UNIX;
strcpy(local.sun_path, SOCK_PATH);
unlink(local.sun_path);
len = strlen(local.sun_path) + sizeof(local.sun_family);
if (bind(s, (struct sockaddr *)&local, len) == -1)
{
perror("bind");
exit(1);
}

if (listen(s, 5) == -1)
{
perror("listen");
exit(1);
}

这是我发现禁用nagle算法的代码,但是我对将其应用于unix套接字的参数一无所知。
int result = setsockopt(sock,            /* socket affected */
IPPROTO_TCP, /* set option at TCP level */
TCP_NODELAY, /* name of option */
(char *) &flag, /* the cast is historical
cruft */
sizeof(int)); /* length of option value */
if (result < 0)
// ...

最佳答案

Nagle算法是一种TCP/IP专用算法,用于减少数据包开销。 UNIX套接字中没有涉及TCP/IP,因此Nagle算法不能在该套接字中应用。这也意味着它不能被禁用。

关于c - 如何在C语言的Unix套接字上禁用Nagle算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60928166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com