Udostępnij za pośrednictwem


ServicePointManager.SetTcpKeepAlive(Boolean, Int32, Int32) Metoda

Definicja

Włącza lub wyłącza opcję zachowania aktywności w połączeniu 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)

Parametry

enabled
Boolean

W przypadku ustawienia wartości true opcja zachowaj żywość protokołu TCP w połączeniu TCP zostanie włączona przy użyciu określonych keepAliveTime wartości i keepAliveInterval .

Jeśli ustawiono wartość false, opcja utrzymywania aktywności protokołu TCP jest wyłączona, a pozostałe parametry są ignorowane.

Wartość domyślna to fałsz.

keepAliveTime
Int32

Określa limit czasu (w milisekundach) bez działania do momentu wysłania pierwszego pakietu keep-alive.

Wartość musi być większa niż 0. Jeśli zostanie przekazana wartość mniejsza lub równa zero, zostanie zwrócona ArgumentOutOfRangeException wartość .

keepAliveInterval
Int32

Określa interwał (w milisekundach) między kolejnymi pakietami utrzymania aktywności wysyłanymi, jeśli nie otrzymano potwierdzenia.

Wartość musi być większa niż 0. Jeśli zostanie przekazana wartość mniejsza lub równa zero, zostanie zwrócona ArgumentOutOfRangeException wartość .

Wyjątki

Wartość określona dla keepAliveTime parametru lub keepAliveInterval jest mniejsza lub równa 0.

Uwagi

Aplikacja może zażądać, aby dostawca TCP/IP włączył korzystanie z pakietów keep-alive w połączeniu TCP. Ustawieniem domyślnym jest to, że korzystanie z pakietów utrzymywania aktywności w połączeniu TCP jest wyłączone.

Ustawienia domyślne, gdy gniazdo TCP jest inicjowane, ustawia limit czasu utrzymania aktywności na 2 godziny, a interwał utrzymania aktywności na 1 sekundę. Parametr keepAliveTime określa limit czasu (w milisekundach) bez działania do momentu wysłania pierwszego pakietu keep-alive. Parametr keepAliveInterval określa interwał (w milisekundach) między kolejnymi pakietami utrzymania aktywności wysyłanymi, jeśli nie otrzymano potwierdzenia. Nie można zmienić liczby sond utrzymywania aktywności i jest ustawiona na 10.

Jeśli połączenie TCP zostanie porzucone w wyniku zachowania aktywności, element z SocketErrorNetworkReset zostanie zwrócony do jakichkolwiek wywołań w toku w gniazdie, a wszystkie kolejne wywołania nie powiedzą się z wartością NotConnectedSocketError .

Ta metoda nie jest bezpieczna wątkowo. Wszystkie ServicePoint utworzone w tym samym czasie mogą zobaczyć częściowo zmienione wartości dla protokołu TCP keep-alive.

Uwaga / Notatka

Ponieważ platforma .NET 9 używa HttpWebRequestSocketsHttpHandler.ConnectCallback polecenia , aby ustawić opcje utrzymania aktywności protokołu TCP w bazowym gniazdie na wartości podane w tej metodzie.

Dotyczy

Zobacz też