Udostępnij za pośrednictwem


TcpClient.LingerState Właściwość

Definicja

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.

Dotyczy

Zobacz też