Setsockopt函数使用说明

转载from:https://blog.csdn.net/hyj920/article/details/101305466

函数功能:setsockopt()函数,用于任意类型、任意状态套接口的设置。

头文件:#include <sys/socket.h>

函数原型:int setsockopt ( int SOCKETs,              /* 套接字 */

                                           int level ,                     /* 选项级别 */

                                           int optname ,               /* 选项级别 */

                                           const char * optval ,    /* 目标选项的值 */

                                          int optlen );                   /* 目标选项的值 */

参数说明:

第一个参数sockfd是套接字描述符。

第二个参数level是被设置的选项的级别。

level指定控制套接字的层次.可以取三种值:
1) SOL_SOCKET:通用套接字选项.
2) IPPROTO_IP:IP选项.
3) IPPROTO_TCP:TCP选项. 

如果想要在套接字级别上设置选项,就必须把level设置为 SOL_SOCKET。

第三个参数optname指定准备设置的选项。

optname可以有哪些取值,这取决于level

第四个参数optval是指针,指向存放选项值的缓冲区

第五个参数optlen指定存放选项值的缓冲区的长度

选项名称

说明

数据类型

SOL_SOCKET

SO_BROADCAST

允许发送广播数据

int

SO_DEBUG

允许调试

int

SO_DONTROUTE

不查找路由

int

SO_ERROR

获得套接字错误

int

SO_KEEPALIVE

保持连接

int

SO_LINGER

延迟关闭连接

struct linger

SO_OOBINLINE

带外数据放入正常数据流

int

SO_RCVBUF

接收缓冲区大小

int

SO_SNDBUF

发送缓冲区大小

int

SO_RCVLOWAT

接收缓冲区下限

int

SO_SNDLOWAT

发送缓冲区下限

int

SO_RCVTIMEO

接收超时

struct timeval

SO_SNDTIMEO

发送超时

struct timeval

SO_REUSERADDR

允许重用本地地址和端口

int

SO_TYPE

获得套接字类型

int

SO_BSDCOMPAT

与BSD系统兼容

int

IPPROTO_IP

IP_HDRINCL

在数据包中包含IP首部

int

IP_OPTINOS

IP首部选项

int

IP_TOS

服务类型

 

IP_MULTICAST_IF

获取或设置打算从它上面发出多播数据的本地接口

无符号长整数

IP_MULTICAST_TTL

为套接字获取或设置多播数据包的存在时间

 

IP_TTL

生存时间

int

IPPRO_TCP

TCP_MAXSEG

TCP最大数据段的大小

int

TCP_NODELAY

不使用Nagle算法

int

发布了100 篇原创文章 · 获赞 26 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/modi000/article/details/105603195