对setsocketopt()的解析

今天在看怎么禁用TCP中的negle算法,学习到了setsockopt函数。下面分享一下setsockopt函数的调用和参数详解:

int Err=setsockopt(int sockfd,int level,int optname,const void* optval,socklen_t optlen);

第一个参数就是套接字名sockfd;

第二个参数是使用的协议,有以下三种:

SOL_SOCKET 通用套接字;

IPPROTO_IP IP协议;

IPPROTO_TCP TCP协议;

第三个参数是协议里的选项;

通用套接字里面的有好多好多,我大致的看了一遍,都没怎么用到过,以后用到了我在改博客更新。

IP协议选项有下面几个:

IP_HDRINCL  在数据报中包含IP首部

IP_OPTIONS  IP首部选项

IP_TOS     服务类型

IP_TTL      生存时间

TCP协议两个:

TCP_MAXSEG   TCP最大数据段的大小;

TCP_NODELAY   TCP的不使用negle算法;

第四个参数  返回选项值的缓冲;

第五个参数  选项值的字节大小;

现在写一个,禁用negle算法的例子:

const char chOpt=1;
int Err;
Err=setsockopt(sockfd,IPPRO_TCP,TCP_NODELAY,&chOpt,sizeof(char));
if(Err==-1)
   perror("setsockopt error!");

+

你可能感兴趣的:(linux,计算机网络)