TcpClient.LingerState Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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.