ServicePointManager.SetTcpKeepAlive(Boolean, Int32, Int32) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Ativa ou desativa a opção de manter vivo numa ligação 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
Se definido como true, então a opção TCP keep-alive numa ligação TCP será ativada usando os valores e keepAliveTime especificadoskeepAliveInterval.
Se definida como falsa, então a opção TCP keep-alive é desativada e os restantes parâmetros são ignorados.
O valor predefinido é false.
- keepAliveTime
- Int32
Especifica o timeout, em milissegundos, sem atividade até que o primeiro pacote keep-alive seja enviado.
O valor deve ser maior que 0. Se um valor menor ou igual a zero for passado, é lançado.ArgumentOutOfRangeException
- keepAliveInterval
- Int32
Especifica o intervalo, em milissegundos, entre o envio de sucessivos pacotes keep-alive caso não seja recebido reconhecimento.
O valor deve ser maior que 0. Se um valor menor ou igual a zero for passado, é lançado.ArgumentOutOfRangeException
Exceções
O valor especificado para keepAliveTime ou keepAliveInterval parâmetro é menor ou igual a 0.
Observações
Uma aplicação pode solicitar que um fornecedor TCP/IP habilite a utilização de pacotes keep-alive numa ligação TCP. O padrão é que a utilização de pacotes keep-alive numa ligação TCP está desativada.
As definições padrão quando um socket TCP é inicializado definem o timeout do keep-alive para 2 horas e o intervalo do keep-alive para 1 segundo. O keepAliveTime parâmetro especifica o timeout, em milissegundos, sem atividade até que o primeiro pacote de keep alive seja enviado. O keepAliveInterval parâmetro especifica o intervalo, em milissegundos, entre o envio de pacotes de manutenção sucessivos caso não seja recebido reconhecimento. O número de sondas de manutenção não pode ser alterado e está definido para 10.
Se uma ligação TCP for interrompida como resultado de manter vivas, um SocketError de NetworkReset é devolvido a quaisquer chamadas em curso no socket, e quaisquer chamadas subsequentes falham com um SocketError de NotConnected.
Este método não é seguro para fios. Qualquer coisa ServicePoint criada ao mesmo tempo pode ver valores parcialmente alterados para o TCP keep-alive.
Note
Desde .NET 9, HttpWebRequest utiliza SocketsHttpHandler.ConnectCallback para definir as opções TCP keep alive no socket subjacente aos valores fornecidos a este método.