Condividi tramite


ServicePoint.SetTcpKeepAlive(Boolean, Int32, Int32) Metodo

Definizione

Abilita o disabilita l'opzione keep-alive in una connessione 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)

Parametri

enabled
Boolean

Se impostato su true, l'opzione keep-alive TCP in una connessione TCP verrà abilitata usando i valori e keepAliveInterval specificatikeepAliveTime.

Se è impostato su false, l'opzione keep-alive TCP è disabilitata e i parametri rimanenti vengono ignorati.

Il valore predefinito è false.

keepAliveTime
Int32

Specifica il timeout, espresso in millisecondi, senza attività fino all'invio del primo pacchetto keep-alive.

Il valore deve essere maggiore di 0. Se viene passato un valore minore o uguale a zero, viene generata un'eccezione ArgumentOutOfRangeException .

keepAliveInterval
Int32

Specifica l'intervallo, espresso in millisecondi, tra l'invio di pacchetti keep-alive successivi se non viene ricevuto alcun acknowledgement.

Il valore deve essere maggiore di 0. Se viene passato un valore minore o uguale a zero, viene generata un'eccezione ArgumentOutOfRangeException .

Eccezioni

Il valore specificato per keepAliveTime o keepAliveInterval parametro è minore o uguale a 0.

Commenti

Cautela

WebRequest HttpWebRequest, ServicePoint, e WebClient sono obsoleti e non è consigliabile usarli per il nuovo sviluppo. Utilizzare invece HttpClient.

Un'applicazione può richiedere che un provider TCP/IP consenta l'uso di pacchetti keep-alive su una connessione TCP. Il valore predefinito è che l'uso di pacchetti keep-alive in una connessione TCP è disabilitato.

Le impostazioni predefinite quando un socket TCP viene inizializzato imposta il timeout keep-alive su 2 ore e l'intervallo keep-alive su 1 secondo. Il keepAliveTime parametro specifica il timeout, in millisecondi, senza attività finché non viene inviato il primo pacchetto keep-alive. Il keepAliveInterval parametro specifica l'intervallo, espresso in millisecondi, tra l'invio di pacchetti keep-alive successivi se non viene ricevuto alcun acknowledgement. Il numero di probe keep-alive non può essere modificato ed è impostato su 10.

Se una connessione TCP viene eliminata come risultato di keep-alive, un SocketError di NetworkReset viene restituito a tutte le chiamate in corso sul socket e tutte le chiamate successive avranno esito negativo con un SocketError di NotConnected.

Questo metodo non è thread-safe. Qualsiasi nuova connessione creata contemporaneamente potrebbe visualizzare valori parzialmente modificati per il keep-alive TCP.

Annotazioni

Da .NET 9, HttpWebRequest usa SocketsHttpHandler.ConnectCallback per impostare le opzioni keep-alive TCP nel socket sottostante sui valori forniti a questo metodo.

Si applica a