在 Ubuntu 上找不到 TCP_NODELAY
我试图通过设置 TCP_NODELAY
参数来在 Ubuntu Linux 机器上禁用 Nagle 算法。由于某种原因,该常量未在
或
中定义。这个常量是否已被弃用,然后从 Linux 中删除,或者我只是错过了一些东西?
bool Socket::setTCPNoDelay(bool enabled)
{
int flag = (enabled ? 1 : 0);
if(setsockopt(m_sock,IPPROTO_TCP,TCP_NODELAY,(char *)&flag,sizeof(flag)) == -1)
{
return false;
}
return true;
}
I am trying to disable the Nagle's Algorithm with my TCP sockets on an Ubuntu Linux box by setting the TCP_NODELAY
parameter. For some reason, this constant is not defined in <sys/types.h>
or <sys/socket.h>
. Has this constant been deprecated and then removed from Linux or am I just missing something?
bool Socket::setTCPNoDelay(bool enabled)
{
int flag = (enabled ? 1 : 0);
if(setsockopt(m_sock,IPPROTO_TCP,TCP_NODELAY,(char *)&flag,sizeof(flag)) == -1)
{
return false;
}
return true;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您是否
#include
?Did you
#include <netinet/tcp.h>
?