套接字选项和 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

SO_KEEPALIVE

BOOL

正在发送 Keepalives。 ATM 套接字不支持(导致错误)。

FALSE

(i)

SO_LINGER

结构 linger

返回当前的逗留选项。

l_onoff 为 0

SO_MAX_MSG_SIZE

int

消息套接字类型的消息的最大出站大小。 没有预配可确定最大入站消息大小。 对于面向流的套接字没有任何意义。

依赖实现

仅获取

SO_OOBINLINE

BOOL

正在正常数据流中接收 OOB 数据。

FALSE

SO_PROTOCOL_INFOW

结构WSAPROTOCOL_INFO

绑定到此套接字的协议的协议信息的说明。

依赖协议

仅获取

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中返回相应的值,而不以任何方式使用该值。

 

套接字选项

SOL_SOCKET 套接字选项

IPPROTO_TCP 套接字选项

IPPROTO_UDP 套接字选项

Winsock IOCTL