在Ubuntu上找不到TCP_NODELAY

时间:2011-04-15 19:03:46

标签: c++ sockets setsockopt

我试图通过设置 TCP_NODELAY 参数,在Ubuntu Linux机器上使用我的TCP套接字禁用 Nagle算法。出于某种原因,此常量未在<sys/types.h><sys/socket.h>中定义。这个常量是否已被弃用,然后从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;

}

1 个答案:

答案 0 :(得分:52)

你有#include <netinet/tcp.h>吗?