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

定义

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

public:
 static void SetTcpKeepAlive(bool enabled, int keepAliveTime, int keepAliveInterval);
public static void SetTcpKeepAlive (bool enabled, int keepAliveTime, int keepAliveInterval);
static member SetTcpKeepAlive : bool * int * int -> unit
Public Shared 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 连接上使用保持连接数据包。 默认设置是禁用在 TCP 连接上使用保持连接数据包。

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

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

适用于

另请参阅