LingerOption(Boolean, Int32) Konstruktor
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
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 seconds
enable
, 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.