套接字选项和 IOCTL
下表汇总了 Windows 套接字 2 的一些套接字选项。 WSPGetSockOpt和/或WSPSetSockOpt下第 4 节提供了更详细的信息。 其他新的特定于协议的套接字选项可在特定于协议的附件中找到。 Winsock 参考中提供了 Windows 套接字的套接字选项完整列表。
有关一些 Winsock Ioctl 的摘要,请参阅套接字 Ioctl Opcodes摘要。 Winsock 参考中提供了Winsock IOCTL 的完整列表。
通用套接字选项摘要
Winsock 服务提供商必须识别所有这些选项,并且(对于WSPGetSockOpt)为每个选项返回合理的值。 下表显示了每个选项的默认值。
值
类型
含义
默认
注意
SO_ACCEPTCONN
BOOL
套接字正在侦听。
FALSE,除非已执行WSPListen。
SO_BROADCAST
BOOL
套接字配置为传输和接收广播消息。
FALSE
SO_DEBUG
BOOL
已启用调试。
FALSE
(i)
SO_DONTLINGER
BOOL
如果为 true,则禁用 SO_LINGER 选项。
TRUE
SO_DONTROUTE
BOOL
路由功能被禁用。 成功,但在 AF_INET 套接字上被忽略;在具有WSAENOPROTOOPT的 AF_INET6 套接字上失败。 ATM 套接字不支持(导致错误)。
FALSE
(i)
SO_ERROR
int
检索错误状态并清除。
0
SO_GROUP_ID
GROUP
保留。
Null
仅获取
SO_GROUP_PRIORITY
int
保留。
0
BOOL
正在发送 Keepalives。 ATM 套接字不支持(导致错误)。
FALSE
(i)
SO_LINGER
结构 linger
返回当前的逗留选项。
l_onoff 为 0
SO_MAX_MSG_SIZE
int
消息套接字类型的消息的最大出站大小。 没有预配可确定最大入站消息大小。 对于面向流的套接字没有任何意义。
依赖实现
仅获取
SO_OOBINLINE
BOOL
正在正常数据流中接收 OOB 数据。
FALSE
SO_PROTOCOL_INFOW
绑定到此套接字的协议的协议信息的说明。
依赖协议
仅获取
SO_RCVBUF
int
为接收保留的每个套接字缓冲区空间的总量。 这与 SO_MAX_MSG_SIZE 无关,不一定对应于 TCP 接收窗口的大小。
依赖实现
(i)
SO_REUSEADDR
BOOL
此套接字绑定到的地址可供他人使用。 不适用于 ATM 套接字。
FALSE
SO_SNDBUF
int
为发送保留的每个套接字缓冲区空间的总量。 这与 SO_MAX_MSG_SIZE 无关,不一定对应于 TCP 发送窗口的大小。
依赖实现
(i)
SO_TYPE
int
套接字类型(例如,SOCK_STREAM)。
通过套接字创建。
PVD_CONFIG
char FAR *
包含服务提供商的配置信息的不透明数据结构对象。
依赖实现
TCP_NODELAY
BOOL
为发送合并禁用 Nagle 算法。
依赖实现
(i) 服务提供商可能会在WSPSetSockOpt上以无提示方式忽略此选项,并为WSPGetSockOpt返回常量值,或者它可能接受WSPSetSockOpt的值,并在WSPGetSockOpt中返回相应的值,而不以任何方式使用该值。
相关主题