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