Sdílet prostřednictvím


LingerOption(Boolean, Int32) Konstruktor

Definice

Inicializuje novou instanci LingerOption třídy.

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 zůstat připojen po zavolání Close() metody; v opačném případě false.

seconds
Int32

Počet sekund, po které má zůstat připojen po zavolání Close() metody.

Příklady

Následující příklad nastaví dříve vytvořený Socket tak, aby po volání metody zůstal o jednu sekundu Close .

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)

Poznámky

Po zavření Socketmůžou být v odchozí síťové vyrovnávací paměti stále k dispozici data. Pomocí parametru enable určete, jestli chcete pokračovat v Socket přenosu neodeslaných dat po zavolání metody close. Pomocí parametru seconds označte, jak dlouho se má pokus o přenos neodpovícených dat před vypršením časového limituSocket. Pokud pro parametr zadáte true hodnotu 0seconds, pokusí se soubor odeslat data, Socket dokud v vyrovnávací paměti odchozí sítě nezůstane žádná data.enable Pokud pro enable parametr zadátefalse, Socket okamžitě se zavře a všechna neodpovídaná data budou ztracena.

Následující tabulka popisuje chování Socket.Close metod a TcpClient.Close na základě možných hodnot enable parametrů a seconds při vytvoření a T:System.Net.Sockets.LingerOption instance ve Socket.LingerState vlastnosti nebo TcpClient.LingerState .

enable seconds Chování
false (zakázáno), výchozí hodnota Časový limit se nedá použít (výchozí). Pokusy o odeslání čekajících dat pro soket orientovaný na připojení (například TCP) do vypršení časového limitu výchozího protokolu IP.
true (povoleno) Nenulový časový limit Pokusí se odeslat čekající data, dokud nevyprší zadaný časový limit, a pokud pokus selže, winsock resetuje připojení.
true (povoleno) Vypršení časového limitu nuly Zahodí všechna čekající data. V případě soketu orientovaného na připojení (například TCP) winsock resetuje připojení.

Zásobník IP adres vypočítá výchozí období časového limitu protokolu IP, které se má použít, na základě doby odezvy připojení. Ve většině případů je časový limit vypočítaný zásobníkem relevantnější než časový limit definovaný aplikací. Toto je výchozí chování soketu, pokud není nastavena LingerState vlastnost.

LingerTime Pokud je vlastnost uložená ve LingerState vlastnosti nastavena na vyšší než výchozí časový limit protokolu IP, bude stále platit a přepsán výchozí časový limit protokolu IP.

Platí pro