LingerOption(Boolean, Int32) Konstruktor
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.
Initialisiert eine neue Instanz der LingerOption-Klasse.
public:
LingerOption(bool enable, int seconds);
public LingerOption (bool enable, int seconds);
new System.Net.Sockets.LingerOption : bool * int -> System.Net.Sockets.LingerOption
Public Sub New (enable As Boolean, seconds As Integer)
Parameter
- enable
- Boolean
true
, um die Verbindung nach dem Aufruf der Close()-Methode aufrechtzuerhalten, andernfalls false
.
- seconds
- Int32
Die Anzahl der Sekunden, für die die Verbindung nach dem Aufruf der Close()-Methode aufrechterhalten werden soll.
Beispiele
Im folgenden Beispiel wird festgelegt, dass eine zuvor erstellte Socket eine Sekunde nach dem Aufrufen der Close -Methode verweilt wird.
LingerOption^ myOpts = gcnew LingerOption( true,1 );
mySocket->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::Linger, myOpts );
LingerOption myOpts = new LingerOption(true,1);
mySocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, myOpts);
Dim myOpts As New LingerOption(True, 1)
mySocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, _
myOpts)
Hinweise
Nach dem Schließen von sind möglicherweise noch Daten im ausgehenden SocketNetzwerkpuffer verfügbar. Verwenden Sie den enable
-Parameter, um anzugeben, ob die Socket weiterhin nicht gesendete Daten übertragen soll, nachdem die close-Methode aufgerufen wurde. Verwenden Sie den seconds
-Parameter, um anzugeben, wie lange sie versuchen möchtenSocket, nicht gesendete Daten zu übertragen, bevor ein Timeout auftritt. Wenn Sie für den enable
Parameter und 0 für den seconds
Parameter angebentrue
, wird versucht, Daten zu senden, Socket bis keine Daten im ausgehenden Netzwerkpuffer vorhanden sind. Wenn Sie für den enable
Parameter angebenfalse
, wird sofort Socket geschlossen, und alle nicht gesendeten Daten gehen verloren.
In der folgenden Tabelle wird das Verhalten für die Socket.Close Methoden und TcpClient.Close basierend auf den möglichen Werten der enable
Parameter und seconds
beschrieben, wenn ein T:System.Net.Sockets.LingerOption-instance erstellt und in der Socket.LingerState -Eigenschaft oder TcpClient.LingerState festgelegt wird.
enable |
seconds |
Verhalten |
---|---|---|
false (deaktiviert), der Standardwert |
Das Timeout ist nicht anwendbar (Standard). | Versucht, ausstehende Daten für einen verbindungsorientierten Socket (z. B. TCP) 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. Für verbindungsorientierte Sockets (z. B. TCP) setzt Winsock 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.