ServicePointManager.SetTcpKeepAlive(Boolean, Int32, Int32) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
对 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,则将使用指定的 keepAliveTime
和 keepAliveInterval
值启用 TCP 连接上的 TCP keep-alive 选项。
如果设置为 false,则将禁用 TCP keep-alive 选项,并忽略剩余参数。
默认值是 False。
- keepAliveTime
- Int32
指定发送第一个 keep-alive 数据包之前没有活动的超时时间(以毫秒为单位)。
该值必须大于 0。 如果传递的值小于或等于零,则会引发 ArgumentOutOfRangeException。
- keepAliveInterval
- Int32
指定当未收到确认消息时发送连续 keep-alive 数据包之间的间隔(以毫秒为单位)。
该值必须大于 0。 如果传递的值小于或等于零,则会引发 ArgumentOutOfRangeException。
例外
为 keepAliveTime
或 keepAliveInterval
参数指定的值小于等于 0.
注解
应用程序可以请求 TCP/IP 提供程序允许在 TCP 连接上使用保持连接数据包。 默认设置是禁用在 TCP 连接上使用保持连接数据包。
初始化 TCP 套接字时的默认设置将保持连接超时设置为 2 小时,将保持连接间隔设置为 1 秒。 参数 keepAliveTime
指定超时(以毫秒为单位),在发送第一个保持连接数据包之前没有活动。 参数 keepAliveInterval
指定在未收到确认的情况下发送连续保持连接数据包之间的间隔(以毫秒为单位)。 无法更改保持连接探测数,并且设置为 10。
如果 TCP 连接因保持连接而断开,SocketErrorNetworkReset则会向套接字上正在进行的任何调用返回 的 ,并且任何后续调用都将失败,为 。NotConnectedSocketError