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