我试图通过设置 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;
}
答案 0 :(得分:52)
你有#include <netinet/tcp.h>
吗?