Udostępnij za pośrednictwem


LingerOption(Boolean, Int32) Konstruktor

Definicja

Inicjuje nowe wystąpienie klasy LingerOption.

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)

Parametry

enable
Boolean

true aby zachować połączenie po wywołaniu Close() metody ; w przeciwnym razie false.

seconds
Int32

Liczba sekund, które mają pozostać połączone po wywołaniu Close() metody.

Przykłady

Poniższy przykład ustawia wcześniej utworzony element Socket , aby utrzymać jedną sekundę po wywołaniu Close metody .

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)

Uwagi

Po zamknięciu pliku nadal mogą istnieć dane dostępne w buforze sieci wychodzącej Socket. Użyj parametru enable , aby określić, czy chcesz Socket kontynuować przesyłanie niesprawnych danych po wywołaniu metody close. Użyj parametru seconds , aby wskazać, jak długo ma być Socket podjęta próba przeniesienia nieumyślnych danych przed upływem limitu czasu. W przypadku określenia true parametru enable i wartości 0 dla parametru secondsSocket program podejmie próbę wysłania danych do momentu, gdy w buforze sieci wychodzącej nie pozostanie żadne dane. Jeśli określisz false parametr dla parametru enable , Socket obiekt zostanie natychmiast zamknięty, a wszystkie nieuprawnione dane zostaną utracone.

W poniższej tabeli opisano zachowanie metod Socket.Close i TcpClient.Close na podstawie możliwych wartości enable parametrów i seconds podczas tworzenia wystąpienia T:System.Net.Sockets.LingerOption i ustawiania w Socket.LingerState właściwości or TcpClient.LingerState .

enable seconds Zachowanie
false (wyłączone), wartość domyślna Limit czasu nie ma zastosowania (ustawienie domyślne). Próbuje wysłać oczekujące dane dla gniazda zorientowanego na połączenie (na przykład TCP) do czasu wygaśnięcia domyślnego limitu czasu protokołu IP.
true (włączone) Przekroczenie limitu czasu pozazerowego Próbuje wysłać oczekujące dane do momentu wygaśnięcia określonego limitu czasu, a jeśli próba zakończy się niepowodzeniem, usługa Winsock resetuje połączenie.
true (włączone) Zero limitu czasu. Odrzuca wszystkie oczekujące dane. W przypadku gniazda zorientowanego na połączenie (na przykład TCP) usługa Winsock resetuje połączenie.

Stos IP oblicza domyślny limit czasu protokołu IP do użycia na podstawie czasu rundy połączenia. W większości przypadków limit czasu obliczony przez stos jest bardziej istotny niż jeden zdefiniowany przez aplikację. Jest to domyślne zachowanie gniazda, gdy właściwość nie jest ustawiona LingerState .

LingerTime Gdy właściwość przechowywana we LingerState właściwości jest ustawiana większa niż domyślny limit czasu protokołu IP, domyślny limit czasu protokołu IP będzie nadal stosowany i zastępowany.

Dotyczy