TcpClient.LingerState Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera lub ustawia informacje o stanie pokuty skojarzonego gniazda.
public:
property System::Net::Sockets::LingerOption ^ LingerState { System::Net::Sockets::LingerOption ^ get(); void set(System::Net::Sockets::LingerOption ^ value); };
public System.Net.Sockets.LingerOption? LingerState { get; set; }
public System.Net.Sockets.LingerOption LingerState { get; set; }
member this.LingerState : System.Net.Sockets.LingerOption with get, set
Public Property LingerState As LingerOption
Wartość właściwości
Klasa LingerOption. Domyślnie utrzymujące się ustawienia są wyłączone.
Przykłady
Poniższy przykład kodu ustawia i pobiera czas oczekiwania gniazd.
// sets the amount of time to linger after closing, using the LingerOption public property.
LingerOption^ lingerOption = gcnew LingerOption( true,10 );
tcpClient->LingerState = lingerOption;
// gets the amount of linger time set, using the LingerOption public property.
if ( tcpClient->LingerState->LingerTime == 10 )
Console::WriteLine( "The linger state setting was successfully set to {0}", tcpClient->LingerState->LingerTime );
// sets the amount of time to linger after closing, using the LingerOption public property.
LingerOption lingerOption = new LingerOption (true, 10);
tcpClient.LingerState = lingerOption;
// gets the amount of linger time set, using the LingerOption public property.
if (tcpClient.LingerState.LingerTime == 10)
Console.WriteLine ("The linger state setting was successfully set to " + tcpClient.LingerState.LingerTime.ToString ());
' Sets the amount of time to linger after closing, using the LingerOption public property.
Dim lingerOption As New LingerOption(True, 10)
tcpClient.LingerState = lingerOption
' Gets the amount of linger time set, using the LingerOption public property.
If tcpClient.LingerState.LingerTime = 10 Then
Console.WriteLine(("The linger state setting was successfully set to " + tcpClient.LingerState.LingerTime.ToString()))
End If
Uwagi
Właściwość LingerState
zmienia sposób Close działania metody. Ta właściwość podczas ustawiania modyfikuje warunki, w których połączenie może zostać zresetowane przez usługę Winsock. Resetowanie połączeń może nadal występować na podstawie zachowania protokołu IP.
Ta właściwość określa czas, przez jaki połączenie TCP pozostanie otwarte po wywołaniu Close metody , gdy dane pozostaną wysyłane. Po wywołaniu Write metody dane są umieszczane w buforze sieci wychodzącej. Tej właściwości można użyć, aby upewnić się, że te dane są wysyłane do hosta zdalnego przed porzuceniem Close połączenia przez metodę.
Aby włączyć utrzymujące się, utwórz LingerOption wystąpienie zawierające żądane wartości i ustaw LingerState
właściwość na to wystąpienie.
W poniższej tabeli opisano zachowanie Close metody dla możliwych wartości Enabled właściwości i LingerTime właściwości przechowywanej LingerState
we właściwości .
LingerState.Enabled | LingerState.LingerTime | Zachowanie |
---|---|---|
false (wyłączone), wartość domyślna |
Limit czasu nie ma zastosowania (wartość domyślna). | Próbuje wysłać oczekujące dane do momentu wygaśnięcia domyślnego limitu czasu protokołu IP. |
true (włączone) |
Przekroczenie limitu czasu bezzerowego | Próbuje wysłać oczekujące dane do momentu wygaśnięcia określonego limitu czasu, a jeśli próba zakończy się niepowodzeniem, usługa Winsock resetuje połączenie. |
true (włączone) |
Limit czasu zerowy. | Odrzuca wszystkie oczekujące dane, a usługa Winsock resetuje połączenie. |
Stos adresów IP oblicza domyślny limit czasu protokołu IP do użycia na podstawie czasu rundy połączenia. W większości przypadków limit czasu obliczony przez stos jest bardziej istotny niż limit czasu zdefiniowany przez aplikację. Jest to domyślne zachowanie gniazda, gdy właściwość nie jest ustawiona LingerState
.
LingerTime Jeśli właściwość przechowywana we LingerState
właściwości jest większa niż domyślny limit czasu protokołu IP, domyślny limit czasu protokołu IP będzie nadal stosowany i zastępowany.