TCP_NODELAY не найден в Ubuntu - PullRequest
22 голосов
/ 15 апреля 2011

Я пытаюсь отключить Алгоритм Нейгла с помощью своих TCP-сокетов на коробке с Ubuntu Linux, установив параметр TCP_NODELAY .По какой-то причине эта константа не определена в <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 Ответ

52 голосов
/ 15 апреля 2011

Ты #include <netinet/tcp.h>?

...