分类: 系统运维
2013-06-18 12:17:10
int PASCAL setsockopt ( __in SOCKET s,/*套接字*/ __in int level, /*选项级别*/ __in int optname,/* 选项级别*/ __in const char * optval,/* 目标选项的值*/ __in int optlen );/* 目标选项的值*/ | int PASCAL getsockopt( __in SOCKET s, /*套接字*/ __in int level, /*选项级别*/ __in int optname, /* 选项级别*/ __out char* optval, /* 返回目标选项的值*/ __inout int * optlen); /* 返回目标选项的值*/ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SOL_SOCKET选项级别 | 选项值类型 | 获取/设置 | Socket版本 | 说明 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SO_ACCEPTCONN | 布尔值 | 只能获取 | 1+ | 如为TRUE(真) ,表明套接字处于监听模式Chapter 9 Page 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SO_BROADCAST | 布尔值 | 两种均可 | 1+ | 如TRUE,表明套接字已配置成对广播消息进行发送Chapter 9 Page 2~3 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SO_CONNECT_TIME | 整数 | 只能获取 | 1+ | 返回套接字建立连接的时间,以秒为单位,如尚未连接,返回0xffffffff (微软专用) Chapter 9 Page 3 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SO_DEBUG | 布尔值 | 两者均可 | 1+ | 如果TRUE,就允许调试输出 (W32不支持) Chapter 9 Page 3 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SO_DONTLINGER | 布尔值 | 两者均可 | 1+ | 如果是TRUE,则禁用SO_LINGER Chapter 9 Page 3 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SO_LINGER | struct linger | 两者均可 | 1+ | 设置或获取当前的拖延值Chapter 9 Page 5~6 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SO_DONTROUTE | 布尔值 | 两者均可 | 1+ | 如果TRUE,便直接向网络接口发送消息,毋需查询路由表 (微软无效) Chapter 9 Page 4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SO_ERROR | 布尔值 | 只能获得 | 1+ | 返回错误状态Chapter 9 Page 4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SO_EXCLUSIVEADDRUSE | 布尔值 | 两者均可 | 2+ | 如果TRUE,套接字绑定那个本地端口就不能重新被另一个进程使用Chapter 9 Page 4~5 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SO_KEEPALIVE | 布尔值 | 两者均可 | 1+ | 如果TRUE,套接字就会进行配置,在会话过程中发送”保持活动”消息Chapter 9 Page 5 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SO_MAX_MSG_SIZE | 无符号整数 | 只能获取 | 2+ | 对一个面向消息的套接字来说,一条消息的最大长度Chapter 9 Page 6 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SO_OOBINLINE | 布尔值 | 两者均可 | 1+ | 如果是TRUE,带外数据就会在普通数据流中返回 (W32不支持) Chapter 9 Page 6 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SO_PROTOCOL_INFO | WSAPROTOCOL_INFO | 只能获得 | 2+ | 套接字绑定的那种协议的特征Chapter 9 Page 7 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SO_RCVBUF | 整数 | 两者均可 | 1+ | 面向接收操作,为每个套接字分别获取或设置缓冲区长度Chapter 9 Page 7 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SO_REUSEADDR | 布尔值 | 两者均可 | 1+ | 如果是TRUE,套接字就可与一个正由其他套接字使用的地址绑定到一起,或与处在T IME_WAIT状态的地址绑定到一起Chapter 9 Page 7~8 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SO_SNDBUF | 布尔值 | 两者均可 | 1+ | 设置分配给套接字的数据发送缓冲区的大小 Chapter 9 Page 8 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SO_TYPE | 整数 | 只能获取 | 1+ | 返回指定套接字的类型(如SOCK_DGRAM和SOCK_STREAM等等)Chapter 9 Page 8 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SO_SNDTIMEO | 整数 | 两者均可 | 1+ | 获取或设置套接字上的数据发送超时时间(以毫秒为单位)Chapter 9 Page 8 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SO_RCVTIMEO | 整数 | 两者均可 | 1+ | 获取或设置与套接字上数据接收对应的超时时间值(以毫秒为单位) Chapter 9 Page 9 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SO_UPDATE_ACCEPT_CONTEXT | SOCKET | 两者均可 | 1+ | 更新SOCKET状态 Chapter 9 Page 9 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IPPROTO_IP选项级别 | 选项值类型 | 获取/设置 | Socket版本 | 说明 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IP_OPTIONS | char[] | 两者均可 | 1+ | 设置或获取I P头内的I P选项 Chapter 9 Page 16~17 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IP_HDRINCL | 布尔值 | 两者均可 | 2+ | 如果是TRUE,IP头就会随即将发送的数据一起提交,并从读取的数据中返回,如下表 Chapter 9 Page 18 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
表IP_HDRINCL: Chapter 9 Page 18
表IP_HDRINCL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IP_TOS | 整数 | 两者均可 | 1+ | IP服务类型Chapter 9 Page 19 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IP_TTL | 整数 | 两者均可 | 1+ | I P协议的“存在时间” (TTL)参数Chapter 9 Page 19 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IP_MULTICAST_IF | 无符号长整数 | 两者均可 | 1+ | 获取或设置打算从它上面发出多播数据的本地接口 Chapter 9 Page 20 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IP_MULTICAST_TTL | 整数 | 两者均可 | 1+ | 为套接字获取或设置多播数据包的存在时间Chapter 9 Page 20 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IP_MULTICAST_LOOP | 布尔值 | 两者均可 | 1+ | 如果TRUE,发至多播地址的数据将原封不动地“反射”或“反弹”回套接字的进入缓冲区 Chapter 9 Page 20 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IP_ADD_MEMBERSHIP | struct ip_mreq | 只能设置 | 1+ | 在指定的I P组内为套接字赋予成员资格 Chapter 9 Page 20 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IP_DROP_MEMBERSHIP | struct ip_mre1 | 只能设置 | 1+ | 将套接字从指定的I P组内删去(撤消成员资格)Chapter 9 Page 20 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IP_DONTFRAGMENT | 布尔值 | 两者均可 | 1+ | 如果是TRUE,就不对I P数据报进行分段Chapter 9 Page 20 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IPPROTO_TCP选项级别 | 选项值类型 | 获取/设置 | Socket版本 | 说明 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TCP_NODELAY | 布尔值 | 两者均可 | 1+ | 若为TRUE, 就会在套接字上禁用Nagle算法 (只适用于流式套接字) Chapter 9 Page 21 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
NSPROTO_IPX选项级别 | 选项值类型 | 获取/设置 | Socket版本 | 说明 (仅适用于Microsoft IPX/SPX) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IPX_PTYPE | 整数 | 两者均可 | 1+ | 获取或设置I P X包的类型Chapter 9 Page 21 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IPX_FILTERPTYP | 整数 | 两者均可 | 1+ | 获取或设置准备过滤的IPX包之类型Chapter 9 Page 22 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IPX_STOPFILTERPTYPE | 整数 | 只能设置 | 1+ | 删除为指定IPX包设置的过滤器Chapter 9 Page 22 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IPX_DSTYPE | 整数 | 两者均可 | 1+ | 获取或设置SPX头中的数据流字段值Chapter 9 Page 22 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IPX_EXTENDED_ADDRESS | 布尔值 | 两者均可 | 1+ | 如果是TRUE,便允许对I P X包进行扩展定址Chapter 9 Page 22 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IPX_RECVHDR | 布尔值 | 两者均可 | 1+ | 如果是T R U E,就随接收调用一起,返回IPX头Chapter 9 Page 22 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IPX_MAXSIZE | 整数 | 只能获取 | 1+ | 返回I P X数据报的最大长度Chapter 9 Page 22 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IPX_ADDRESS | IPX_ADDRESS_DATA | 只能获取 | 1+ | 返回具备I P X能力之适配器的有关信息Chapter 9 Page 22 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IPX_GETNETINFO | IPX_NETNUM_DATA | 只能获取 | 1+ | 返回与一个指定I P X网络编号有关的信息Chapter 9 Page 23 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IPX_GETNETINFO_NORIP | IPX_ADDRESS_DATA | 两者均可 | 1+ | 返回与一个指定I P X网络编号有关的信息Chapter 9 Page 23 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IPX_SPXGETCONNECTIONSTATUS | IPX_SPXCONNSTATUS_ DATA | 只能获取 | 1+ | 返回与一个已建立连接的S P X套接字有关的信息 Chapter 9 Page 23 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IPX_ADDRESS_NOTIFY | IPX_ADDRESS_DATA | 只能获取 | 1+ | 若I P X适配器的状态发生改变,则发出异步通知 Chapter 9 Page 24 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IPX_MAX_ADAPTER_NUM | 整数 | 只能获取 | 1+ | 返回存在的IPX适配器个数Chapter 9 Page 24~25 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IPX_RERIPNETNUMBER | IPX_NETNUM_DATA | 只能获取 | 1+ | 返回一个网络编号的相关信息Chapter 9 Page 25 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IPX_RECEIVE_BROADCAST | 布尔值 | 只能设置 | 1+ | 如果是TRUE,就不接收IPX广播包Chapter 9 Page 25 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PX_IMMEDIATESPXZCK | 布尔值 | 两者均可 | 1+ | 如果是TRUE,就不在SPX连接上延迟发送ACK Chapter 9 Page 25~26 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
int WSAAPI WSAIoctl( __in SOCKET s, /*套接字*/ __in DWORD dwIoControlCode, /*预定义的标志*/ __in_bcount_opt(cbInBuffer) LPVOID lpvInBuffer, /*指向传递进入的值*/ __in DWORD cbInBuffer, /*传入数据的多少*/ __out_bcount_part_opt(cbOutBuffer, *lpcbBytesReturned) LPVOID lpvOutBuffer, /*返回信息缓冲区*/ __in DWORD cbOutBuffer, /*缓冲区的字节长度*/ __out LPDWORD lpcbBytesReturned, /*实际返回的字节数*/ __in_opt LPWSAOVERLAPPED lpOverlapped, /*重叠I/O */ __in_opt LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine); /*重叠I/O回调函数*/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
int PASCAL FAR ioctlsocket( __in SOCKET s, /*套接字*/ __in long cmd, /*预定义的标志*/ __inout u_long FAR *argp); /*命令参数*/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IO控制命令 | 函数 | 输入 | 输出 | Socket版本 | 说明 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
标准I/O控制命令 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FIONBIO | ioctlsocket/WSAIoct | 无符号长整数 | 无 | 1+ | 将套接字置入非锁定模式, 而若设为0值,意味着套接字进入锁定模式 Chapter 9 Page 26 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FIONREAD | 两者均可 | 无 | 无符号长整数 | 1+ | 返回在套接字上存在的数据量Chapter 9 Page 26 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SIOCATMARK | 两者均可 | 无 | 布尔值 | 1+ | 判断是否已读取了带外数据Chapter 9 Page 26~27 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
其他I/O控制命令 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SIO_ENABLE_CIRCULAR-QUEUEING | WSAIoct | 布尔值 | 布尔值 | 2+ | 如接收缓冲区队列溢出,则首先丢弃最早收到的消息 Chapter 9 Page 27 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SIO_FIND_ROUTE | WSAIoct | SOCKADDR | 布尔值 | 2+ | 验证到指定地址的路由是否存在(W32不支持) Chapter 9 Page 27 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SIO_FLUSH | WSAIoct | 无 | 无 | 2+ | 判断是否已读取OOB数据Chapter 9 Page 27 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SIO_BROADCAST_ADDRESS | WSAIoct | 无 | SOCKADDR | 2+ | 为套接字地址家族返回一个广播地址Chapter 9 Page 28 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SIO_GET_EXTENSION_FUNCTION_POINTER | WSAIoct | GUID | 函数指针 | 2+ | 取得基层提供者特有一个函数指针Chapter 9 Page 28 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SIO_CHK_QOS | WSAIoct | DWORD | DWORD | 2+ | 为指定的套接字设置QOS属性Chapter 9 Page 28 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SIO_GET_QOS | WSAIoct | 无 | QOS | 2+ | 返回与套接字关联在一起的QOS结构Chapter 9 Page 29 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SIO_SET_QOS | WSAIoct | QOS | 无 | 2+ | 为指定套接字设置QOS属性Chapter 9 Page 29 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SIO_MULTIPOINT_LOOPBACK | WSAIoct | 布尔值 | 布尔值 | 2+ | 设置或调查多播数据是否循环返回套接字Chapter 9 Page 29 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SIO_MULTICAST_SCOPE | WSAIoct | 整数 | 整数 | 2+ | 设置或获取多播数据的存在时间值Chapter 9 Page 29~30 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SIO_KEEPLIVE_VALS | WSAIoct | tcp_keepalive | tcp_keepalive | 2+ | 针对每一个连接,分别设置其TCP"保持活动”周期 Chapter 9 Page 30 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SIO_RCVALL | WSAIoct | 无符号整数 | 无 | 2+ | 接收网络上的所有数据包Chapter 9 Page 30 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SIO_RCVALL_MCAST | WSAIoct | 无符号整数 | 无 | 2+ | 接收网络上的所有多播数据包Chapter 9 Page 30 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SIO_RCVALL_IGMPMCAST | WSAIoct | 无符号整数 | 无 | 2+ | 接收网络上的所有IGMP数据包Chapter 9 Page 31 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SIO_ROUTING_INTERFACE_QUERY | 两者均可 | SOCKADDR | 无 | 2+ | 可找到用来向远程机器发送数据的那个本地接口的地址 Chapter 9 Page 31 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SIO_ROUTING_INTERFACE_CHANGE | WSAIoct | SOCKADDR | 无 | 2+ | 与一个端点连接的接口发生改变后,发出通知 Chapter 9 Page 31 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SIO_ADDRESS_LIST_QUERY | WSAIoct | 无 | SOCKET_ADDRESS_LIST | 2+ | 返回套接字绑定的一系列接口的列表Chapter 9 Page 32 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SIO_ADDRESS_LIST_CHANGE | WSAIoct | 无 | 无 | 2+ | 本地接口发生变化时,发出通知Chapter 9 Page 32 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IO_GET_INTERFACE_LIST | WSAIoct | 无 | INTERFCE_INFO[] | 2+ | 返回本地接口列表Chapter 9 Page 33 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
安全套接字层的I/O控制命令 (Windows 95/98、Windows NT以及Windows 2000 均不支持) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SO_SSL_GET_CAPABILITIES | WSAIoct | 无 | DWORD | 1 | 返回Winsock安全提供者的功能,仅定义了SO_CAP_CLIENT标志 Chapter 9 Page 33 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SO_SSL_GET_FLAGS | WSAIoct | 无 | DWORD | 1 | 返回与套接字对应的s信道特有标志Chapter 9 Page 34 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SO_SSL_SET_FLAGS | WSAIoct | DWORD | 无 | 1 | 设置套接字s信道特有标志Chapter 9 Page 34 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SO_SSL_GET_PROTOCOLS | WSAIoct | 无 | SSLPROTOCOLS | 1 | 返回安全提供者支持的协议列表Chapter 9 Page 34 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SO_SSL_SET_PROTOCOLS | WSAIoct | SSLPROTOCOLS | 无 | 1 | 设置基层提供者应当支持的一个协议列表Chapter 9 Page 34 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SO_SSL_SET_VALIDATE_CERT_HOOK | WSAIoct | SSLVALIDATECERTHOOK | 无 | 1 | 为SSL身份凭据的接受设置校验函数Chapter 9 Page 34 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SO_SSL_PERFORM_HANDSHAKE | WSAIoct | 无 | 无 | 1 | 在已建立连接的套接字上开始安全联络操作 Chapter 9 Page 35 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATM I/O控制命令 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SIO_GET_NUMBER_OF_ATM_DEVICES | WSAIoct | 无 | DWORD | 2+ | 返回ATM适配器的数量Chapter 9 Page 35 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SIO_GET_ATM_ADDRESS | WSAIoct | DWORD | ATM_ADDRESS | 2+ | 为指定设备返回ATM地址Chapter 9 Page 35 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SIO_ASSOCIATE_PVC | WSAIoct | ATM_PVC_PARAMS | 无 | 2+ | 将套接字与一个永久虚拟回路关联起来Chapter 9 Page 35 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SIO_GET_ATM_CONNECTION_ID | 两者均可 | 无 | ATM_CONNECTION_ID | 2+ | 获取同套接字关联在一起的ATM连接ID Chapter 9 Page 36 |