ServicePointManager.SetTcpKeepAlive(Boolean, Int32, Int32) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Habilita o deshabilita la opción keep-alive en una conexión TCP.
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)
Parámetros
- enabled
- Boolean
Si se establece en true, la opción tcp keep-alive en una conexión TCP se habilitará mediante los valores y keepAliveInterval especificadoskeepAliveTime.
Si se establece en false, la opción TCP keep-alive está deshabilitada y se omiten los parámetros restantes.
El valor predeterminado es false.
- keepAliveTime
- Int32
Especifica el tiempo de espera, en milisegundos, sin actividad hasta que se envíe el primer paquete keep-alive.
El valor debe ser mayor que 0. Si se pasa un valor de menor o igual que cero, se produce una ArgumentOutOfRangeException excepción .
- keepAliveInterval
- Int32
Especifica el intervalo, en milisegundos, entre cuando se envían paquetes keep-alive sucesivos si no se recibe ninguna confirmación.
El valor debe ser mayor que 0. Si se pasa un valor de menor o igual que cero, se produce una ArgumentOutOfRangeException excepción .
Excepciones
El valor especificado para keepAliveTime o keepAliveInterval parámetro es menor o igual que 0.
Comentarios
Una aplicación puede solicitar que un proveedor TCP/IP habilite el uso de paquetes keep-alive en una conexión TCP. El valor predeterminado es que el uso de paquetes keep-alive en una conexión TCP está deshabilitado.
La configuración predeterminada cuando se inicializa un socket TCP establece el tiempo de espera de mantenimiento activo en 2 horas y el intervalo de mantenimiento activo en 1 segundo. El keepAliveTime parámetro especifica el tiempo de espera, en milisegundos, sin actividad hasta que se envíe el primer paquete keep-alive. El keepAliveInterval parámetro especifica el intervalo, en milisegundos, entre cuando se envían paquetes keep-alive sucesivos si no se recibe ninguna confirmación. No se puede cambiar el número de sondeos keep-alive y se establece en 10.
Si se quita una conexión TCP como resultado de keep-alives, se devuelve un SocketError de NetworkReset a cualquier llamada en curso en el socket y se producirá un error en las llamadas posteriores con un SocketError de NotConnected.
Este método no es seguro para subprocesos. Cualquier ServicePoint creado al mismo tiempo podría ver valores modificados parcialmente para tcp keep-alive.
Nota:
Desde .NET 9, HttpWebRequest usa SocketsHttpHandler.ConnectCallback para establecer las opciones de mantenimiento de TCP en el socket subyacente en los valores proporcionados a este método.