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 nach dem Aufruf der Close() Methode verbunden zu bleiben; falseandernfalls .

seconds
Int32

Die Anzahl der Sekunden, die nach dem Aufrufen der Close() Methode verbunden bleiben sollen.

Beispiele

Im folgenden Beispiel wird festgelegt, dass ein zuvor erstelltes Socket Element nach dem Aufrufen der Close Methode eine Sekunde lang bleibt.

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

Es sind möglicherweise noch Daten im ausgehenden Netzwerkpuffer verfügbar, nachdem Sie die SocketDatei geschlossen haben. Verwenden Sie den enable Parameter, um anzugeben, ob die Socket Übertragung nicht gesendeter Daten fortgesetzt werden soll, nachdem die Close-Methode aufgerufen wurde. Verwenden Sie den seconds Parameter, um anzugeben, wie lange Sie versuchen möchtenSocket, nicht gesendete Daten vor dem Timeout zu übertragen. Wenn Sie für den enable Parameter und 0 für den seconds Parameter angebentrue, wird versucht, Daten zu senden, Socket bis im ausgehenden Netzwerkpuffer keine Daten verbleiben. Wenn Sie für den enable Parameter angebenfalse, wird der Socket Parameter sofort geschlossen, und alle nicht gesendeten Daten gehen verloren.

In der folgenden Tabelle wird das Verhalten für die und TcpClient.Close die Socket.Close Methoden beschrieben, die auf den möglichen Werten und enableseconds Parametern basieren, wenn eine T:System.Net.Sockets.LingerOption-Instanz erstellt und in der Socket.LingerState Eigenschaft TcpClient.LingerState festgelegt wird.

enable seconds Verhalten
false (deaktiviert), Standardwert Das Timeout ist nicht anwendbar (Standard). Versucht, ausstehende Daten für einen verbindungsorientierten Socket (z. B. TCP) zu senden, bis das Standardtimeout des IP-Protokolls abläuft.
true (aktiviert) Ein Nichtzero-Timeout Versucht, ausstehende Daten zu senden, bis das angegebene Timeout abläuft, und wenn der Versuch fehlschlägt, setzt Winsock die Verbindung zurück.
true (aktiviert) Ein Nulltimeout. Verwirft alle ausstehenden Daten. Bei verbindungsorientiertem Socket (z. B. TCP) setzt Winsock die Verbindung zurück.

Der IP-Stapel berechnet den Standardtimeoutzeitraum des IP-Protokolls basierend auf der Roundtripzeit der Verbindung. In den meisten Fällen ist das vom Stapel berechnete Timeout relevanter als ein von einer Anwendung definiertes Timeout. 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 Standardtimeout des IP-Protokolls weiterhin angewendet und außer Kraft gesetzt.

Gilt für: