ServicePoint.SetTcpKeepAlive(Boolean, Int32, Int32) 方法

定义

对 TCP 连接启用或禁用 keep-alive 选项。

public:
 void SetTcpKeepAlive(bool enabled, int keepAliveTime, int keepAliveInterval);
public void SetTcpKeepAlive (bool enabled, int keepAliveTime, int keepAliveInterval);
member this.SetTcpKeepAlive : bool * int * int -> unit
Public Sub SetTcpKeepAlive (enabled As Boolean, keepAliveTime As Integer, keepAliveInterval As Integer)

参数

enabled
Boolean

如果设置为 true,则将使用指定的 keepAliveTimekeepAliveInterval 值启用 TCP 连接上的 TCP keep-alive 选项。

如果设置为 false,则将禁用 TCP keep-alive 选项,并忽略剩余参数。

默认值是 False。

keepAliveTime
Int32

指定发送第一个 keep-alive 数据包之前没有活动的超时时间(以毫秒为单位)。

该值必须大于 0。 如果传递的值小于或等于零,则会引发 ArgumentOutOfRangeException

keepAliveInterval
Int32

指定当未收到确认消息时发送连续 keep-alive 数据包之间的间隔(以毫秒为单位)。

该值必须大于 0。 如果传递的值小于或等于零,则会引发 ArgumentOutOfRangeException

例外

keepAliveTimekeepAliveInterval 参数指定的值小于等于 0.

注解

应用程序可以请求 TCP/IP 提供程序允许在 TCP 连接上使用 keep-alive 数据包。 默认设置是在 TCP 连接上禁用保持连接数据包的使用。

初始化 TCP 套接字时的默认设置将保持连接超时设置为 2 小时,将保持连接间隔设置为 1 秒。 参数 keepAliveTime 指定超时(以毫秒为单位),在发送第一个保持连接数据包之前没有活动。 参数 keepAliveInterval 指定在未收到确认的情况下发送连续保持连接数据包之间的间隔(以毫秒为单位)。 无法更改保持连接探测的数目,并且设置为 10。

如果 TCP 连接因保持连接而断开,SocketErrorNetworkReset则 的 将返回到套接字上正在进行的任何调用,并且任何后续调用都将失败,并出现 SocketError 为 的 NotConnected

适用于