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 = 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)

Uwagi

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

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

enable seconds Zachowanie
false (wyłączone), wartość domyślna Limit czasu nie ma zastosowania (wartość domyślna). Próbuje wysłać oczekujące dane dla gniazda zorientowanego na połączenie (na przykład TCP) do momentu wygaśnięcia domyślnego limitu czasu protokołu IP.
true (włączone) Przekroczenie limitu czasu bezzerowego 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 zresetuje połączenie.
true (włączone) Limit czasu zerowego. Odrzuca wszystkie oczekujące dane. W przypadku gniazda zorientowanego na połączenie (na przykład TCP) usługa Winsock resetuje połączenie.

Stos adresów 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 Jeśli właściwość przechowywana we LingerState właściwości jest 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