套接字选项和 IOCTL

下表汇总了 Windows 套接字 2 的一些套接字选项。 WSPGetSockOpt 和/或 WSPSetSockOpt下第 4 节提供了更详细的信息。 可以在 Protocol-Specific 附件中找到其他特定于协议的新套接字选项。 Winsock 参考中提供了 Windows 套接字套接字选项的完整列表。

有关一些 Winsock Ioctls 的摘要,请参阅套接字 Ioctl Opcodes 摘要。 Winsock 参考中提供了 Winsock IOCTL 的完整列表。

通用套接字选项摘要

Winsock 服务提供商必须识别所有这些选项,并且(对于 WSPGetSockOpt)为每个选项返回合理的值。 下表显示了每个选项的默认值。

价值

类型

意义

违约

注意

SO_ACCEPTCONN

BOOL

套接字正在侦听。

FALSE,除非已执行 WSPListen

SO_BROADCAST

BOOL

套接字配置为传输和接收广播消息。

SO_DEBUG

BOOL

已启用调试。

(i)

SO_DONTLINGER

BOOL

如果为 true,则禁用SO_LINGER选项。

SO_DONTROUTE

BOOL

路由已禁用。 成功,但在AF_INET套接字上被忽略;在AF_INET6套接字上失败,WSAENOPROTOOPT。 ATM 套接字不支持(导致错误)。

(i)

SO_ERROR

int

检索错误状态并清除。

0

SO_GROUP_ID

保留。

仅获取

SO_GROUP_PRIORITY

int

保留。

0

SO_KEEPALIVE

BOOL

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

(i)

SO_LINGER

结构挥之不去

返回当前挥之不去的选项。

l_onoff为 0

SO_MAX_MSG_SIZE

int

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

实现依赖

仅获取

SO_OOBINLINE

BOOL

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

SO_PROTOCOL_INFOW

结构 WSAPROTOCOL_INFO

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

依赖协议

仅获取

SO_RCVBUF

int

为接收保留的每套接字缓冲区空间总数。 这与SO_MAX_MSG_SIZE无关,不一定对应于 TCP 接收窗口的大小。

实现依赖

(i)

SO_REUSEADDR

BOOL

此套接字绑定到的地址可供其他人使用。 不适用于 ATM 套接字。

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 IOCTLs