LingerOption(Boolean, Int32) Konstruktor
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
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.