一、函数原型
int setsockopt(int sockfd, int level, int optname,const void *optval, socklen_t optlen)
参数1:sockfd ------文件描述符
参数2:level ------三个选项:1.SOL_SOCKET 通用套接字选项
2.IPPROTO_IP ip层选项
3.IPPROTO_TCP TCP层选项
参数3:optname
选项:1.SO_BROADCAST 允许发送广播数据
2.SO_DEBUG 允许调试
3.SO_DONTROUTE 不查找路由
4.SO_ERROR 获得套接字错误
5.SO_KEEPALIVE 保持连接
6.SO_LINGER 延迟关闭连接
7.SO_OOBINLINE 带外数据放入正常数据流
8.SO_RCVBUF 接受缓冲区大小
9.SO_SNDBUF 发送缓冲区大小
10.SO_RCVLOWAT 接收缓冲区下限
11.SO_SNDLOWAT 接收缓冲区下限
12.SO_RECVTIMEO 接收超时
13.SO_SNDTIMEO 发送超时
14.SO_REUSERADDR 允许重用本地地址和端口
15.SO_TYPE 获得套接字类型
16.SO_BSDCOMPAT 与BSD系统兼容
17.IP_HDRINCL 在数据包中包含IP首部
18.IP_OPTINOS IP首部选项
19.IP_TOS 服务类型
20.IP_TTL 生存时间
21.TCP_MAXFEG tcp最大数据段的大小
22.TCP_NODELAY 不使用Nagle算法
参数4:*optval ------指向存放选项值的缓冲区()
参数5:socklen_t optlen -缓冲区大小
(参数optval和optlen用于访问setsockopt()的选项值,大多数套接字级别的选项对optval使用int参数。
对于setsockopt(),参数应该是非零到启用布尔选项,如果要禁用该选项,则为零。)
return: 0成功 -1出错
二、函数应用:函数应用示例