winsock下getsockopt和setsockopt整理

来源:互联网 发布:人声朗读小说软件 编辑:程序博客网 时间:2024/06/14 05:10

获取套接字选项:

int getsockopt(SOCKET sockfd, int level, int optname, char *optval, int *optlen);

设置套接字选项

int setsockopt(SOCKET sockfd, int level, int optname, const char *optval, int optlen);

sockfd(套接字):一个标识套接口的描述字;

level(级别):选项定义的层次;

  SOL_SOCKET:基本套接口

  IPPROTO_IP:IPv4套接口

  IPPROTO_IPV6:IPv6套接口

  IPPROTO_TCP:TCP套接口

optname(选项名):选项名称

optval(选项值):指向存放选项值的缓冲区

optlen(选项值长度):存放选项值的缓冲区的长度(对于getsockopt函数,这是一个int型指针,对于setsockopt函数,这是一个int值)

选项名称选项类型意义级别getsockopt()支持setsockopt()支持IP_OPTIONS IP头中选项IPPROTO_IP/IPPROTO_IPv6否否SO_DEBUGBOOL记录调试信息SOL_SOCKET是是SO_ACCEPTCONNBOOL套接口在监听SOL_SOCKET是否SO_REUSEADDRBOOL允许套接口和一个正在使用中的地址捆绑SOL_SOCKET是是SO_KEEPALIVEBOOL发送“保持活动”信息SOL_SOCKET是是SO_DONTROUTEBOOL禁止选径;直接传送SOL_SOCKET是是SO_BROADCASTBOOL允许套接口传送广播信息SOL_SOCKET是是SO_USELOOPBACK     SO_LINGERstruct linger FAR*linger选项(对closesocket()有影响)SOL_SOCKET是是SO_OOBINLINEBOOL在常规数据流中接收带外数据SOL_SOCKET是是SO_DONTLINGERBOOL若为真,则SO_LINGER选项被禁止SOL_SOCKET是是SO_EXCLUSIVEADDRUSE     SO_SNDBUFint发送缓冲区大小SOL_SOCKET是是SO_RCVBUFint接收缓冲区大小SOL_SOCKET是是SO_SNDLOWATint发送低级水印 否否SO_RCVLOWATint接收低级水印 否否SO_SNDTIMEOint发送超时 否否SO_RCVTIMEOint接收超时 否否SO_ERRORint获取错误状态并清除SOL_SOCKET是否SO_TYPEint套接口类型(如SOCK_STREAM)SOL_SOCKET是否