Freigeben über


TcpClient.LingerState Eigenschaft

Definition

Ruft Informationen zum Nachlaufzustand des zugeordneten Sockets ab oder legt sie fest.

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

Eigenschaftswert

Ein LingerOption. In der Standardeinstellung ist der Nachlauf deaktiviert.

Beispiele

Im folgenden Codebeispiel wird die Verweilzeit der Sockets festgelegt und abgerufen.

// 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

Hinweise

Die LingerState -Eigenschaft ändert das Verhalten der Close Methode. Diese Eigenschaft ändert beim Festlegen die Bedingungen, unter denen die Verbindung von Winsock zurückgesetzt werden kann. Verbindungsrücksetzungen können weiterhin basierend auf dem IP-Protokollverhalten erfolgen.

Diese Eigenschaft steuert, wie lange die TCP-Verbindung nach einem Aufruf Close von geöffnet bleibt, wann Daten gesendet werden sollen. Wenn Sie die Write -Methode aufrufen, werden Daten im ausgehenden Netzwerkpuffer platziert. Diese Eigenschaft kann verwendet werden, um sicherzustellen, dass diese Daten an den Remotehost gesendet werden, bevor die Close -Methode die Verbindung abbricht.

Um das Verweilen zu aktivieren, erstellen Sie eine LingerOption instance, die die gewünschten Werte enthält, und legen Sie die LingerState -Eigenschaft auf diese instance fest.

In der folgenden Tabelle wird das Verhalten der Close -Methode für die möglichen Werte der Enabled -Eigenschaft und der in der LingerTimeLingerState -Eigenschaft gespeicherten Eigenschaft beschrieben.

LingerState.Enabled LingerState.LingerTime Verhalten
false (deaktiviert), der Standardwert Das Timeout ist nicht anwendbar (Standard). Versucht, ausstehende Daten zu senden, bis das Standardmäßige IP-Protokolltimeout abläuft.
true (aktiviert) Timeout ungleich Null Versucht, ausstehende Daten zu senden, bis das angegebene Timeout abläuft. Wenn der Versuch fehlschlägt, setzt Winsock die Verbindung zurück.
true (aktiviert) Ein Nulltimeout. Verwirft alle ausstehenden Daten, und Winsock setzt die Verbindung zurück.

Der IP-Stapel berechnet den Standardtimeoutzeitraum für das IP-Protokoll basierend auf der Roundtripzeit der Verbindung. In den meisten Fällen ist das vom Stapel berechnete Timeout relevanter als ein von einer Anwendung definiertes. Dies ist das Standardverhalten für einen Socket, wenn die LingerState Eigenschaft nicht festgelegt ist.

Wenn die LingerTime in der LingerState Eigenschaft gespeicherte Eigenschaft größer als das Standardtimeout des IP-Protokolls festgelegt ist, wird das Standardzeitlimit des IP-Protokolls weiterhin angewendet und überschrieben.

Gilt für:

Weitere Informationen