Freigeben über


LingerOption(Boolean, Int32) Konstruktor

Definition

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.

Gilt für: