ServicePointManager.SetTcpKeepAlive(Boolean, Int32, Int32) Método

Definição

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.

Aplica-se a

Ver também