函数功能:
设置套接字属性
setsockopt - set the socket options
头文件:
#include <sys/socket.h>
函数原型:
int setsockopt(int socket, int level, int option_name,
const void *option_value, socklen_t option_len);
参数说明:
int socket:要设置的套接字
level:
选项定义的层次;
支持SOL_SOCKET、
IPPROTO_TCP、
IPPROTO_IP和
IPPROTO_IPV6。
optval:
指针,指向存放选项待设置的新值的缓冲区。
optlen:
optval 缓冲区长度
int option_name:属性的选项
SO_BINDTODEV char * 将套接字绑定到指定端口。
重点 SO_BROADCAST BOOL 允许套接口传送广播信息。
SO_DEBUG BOOL 记录调试信息。
SO_DONTLINER BOOL 不要因为数据未发送就阻塞关闭操作。设置本选项相当于将SO_LINGER的l_onoff元素置为零。
SO_DONTROUTE BOOL 禁止选径;直接传送。
SO_KEEPALIVE BOOL 发送“保持活动”包。
SO_LINGER struct linger FAR* 如关闭时有未发送数据,则逗留。
SO_OOBINLINE BOOL 在常规数据流中接收带外数据。
SO_RCVBUF int 为接收确定缓冲区大小。
重点: SO_REUSEADDR BOOL 允许套接口和一个已在使用中的地址捆绑(参见bind())。---------
SO_SNDBUF int 指定发送缓冲区大小。
TCP_NODELAY BOOL 禁止发送合并的Nagle算法。
setsockopt()不支持的BSD选项有:
选项名 类型 意义
SO_ACCEPTCONN BOOL 套接口在监听。
SO_ERROR int 获取错误状态并清除。
SO_RCVLOWAT int 接收低级水印。
SO_RCVTIMEO int 接收超时。
SO_SNDLOWAT int 发送低级水印。
SO_SNDTIMEO int 发送超时。
SO_TYPE int 套接口类型。
IP_OPTIONS 在IP头中设置选项。
10-18
876