SO_KEEPALIVE

SO_KEEPALIVE套接字选项的状态确定是否在面向连接的套接字上发送保持连接数据包。 此套接字选项仅适用于侦听套接字和面向连接的套接字。

为了设置此套接字选项的状态,WSK 应用程序使用以下参数调用 WskControlSocket 函数。

参数

RequestType

WskSetOption

ControlCode

SO_KEEPALIVE

级别

SOL_SOCKET

InputSize

sizeof (ULONG)

InputBuffer

指向 ULONG 类型变量的指针,该变量包含套接字选项的新状态的值:

  • 0:禁用发送保持连接数据包

  • 1:启用发送保持连接数据包

OutputSize

0

OutputBuffer

Null

OutputSizeReturned

Null

为了检索此套接字选项的状态,WSK 应用程序使用以下参数调用 WskControlSocket 函数。

参数

RequestType

WskGetOption

ControlCode

SO_KEEPALIVE

级别

SOL_SOCKET

InputSize

0

InputBuffer

Null

OutputSize

sizeof (ULONG)

OutputBuffer

指向 ULONG 类型变量的指针,该变量接收套接字选项的状态值:

  • 0:禁用发送保持连接数据包

  • 1:启用发送保持连接数据包

OutputSizeReturned

Null

调用 WskControlSocket 函数时,WSK 应用程序必须指定指向 IRP 的指针,以设置或检索 SO_KEEPALIVE 套接字选项的状态。

此套接字选项的默认状态是禁用发送保持连接数据包。

如果在侦听套接字上启用了此套接字选项,则默认情况下,在该侦听套接字上接受的所有传入连接都启用此套接字选项。 WSK 应用程序可以在接受的套接字上调用 WskControlSocket 函数,以覆盖从侦听套接字继承的此套接字选项的状态。

保持连接数据包由基础网络传输发送。 并非所有网络传输都支持发送保持连接数据包。

有关使用 keep-alive 数据包的详细信息,请参阅 RFC 1122 第 4.2.3.6 节“TCP Keep-Alives”。

要求

版本

在 Windows Vista 和更高版本的 Windows 操作系统中可用。

标头

Ws2def.h (包括 Wsk.h)