LingerOption.LingerTime Vlastnost
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í.
Získá nebo nastaví dobu, která zůstane připojena po volání Close() metody, pokud data zůstanou odeslána.
public:
property int LingerTime { int get(); void set(int value); };
public int LingerTime { get; set; }
member this.LingerTime : int with get, set
Public Property LingerTime As Integer
Hodnota vlastnosti
Doba, v sekundách, která zůstane připojena po volání Close().
Příklady
Následující příklad zobrazí hodnotu této vlastnosti.
Console.WriteLine("This application will timeout if Send does not return within " + Encoding.ASCII.GetString(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4)));
// blocks until send returns
int i = s.Send(msg);
// blocks until read returns
byte[] bytes = new byte[1024];
s.Receive(bytes);
// Display to the screen
Console.WriteLine(Encoding.ASCII.GetString(bytes));
s.Shutdown(SocketShutdown.Both);
Console.WriteLine("If data remains to be sent, this application will stay open for " + ((LingerOption)s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger)).LingerTime.ToString());
s.Close();
Console.WriteLine(("This application will timeout if Send does not return within " + Encoding.ASCII.GetString(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4))))
' blocks until send returns
Dim i As Integer = s.Send(msg)
' blocks until read returns
Dim bytes(1024) As Byte
s.Receive(bytes)
'Display to the screen
Console.WriteLine(Encoding.ASCII.GetString(bytes))
s.Shutdown(SocketShutdown.Both)
Console.WriteLine(("If data remains to be sent, this application will stay open for " + CType(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger), LingerOption).LingerTime.ToString()))
s.Close()
End Sub
Poznámky
Tuto hodnotu použijte, pokud chcete určit, jak dlouho se uzavřená Socket hodnota pokusí před uplynutím časového limitu přenést neodeznaná data. Tuto hodnotu můžete také nastavit na požadované časové období v sekundách.
Enabled Pokud je truevlastnost a nastavíte LingerTime hodnotu 0, Socket zahodí všechna čekající data, která se odešlou do vyrovnávací paměti odchozí sítě. Pokud tuto hodnotu změníte, musíte předat změněnou LingerOption instanci SetSocketOption metodě nebo nastavit LingerState nebo LingerState vlastnost.
Následující tabulka popisuje chování možných hodnot Enabled vlastnosti a LingerTime vlastnosti uložené ve LingerState vlastnosti.
enable |
seconds |
Chování |
|---|---|---|
false (zakázáno), výchozí hodnota |
Časový limit není použitelný (výchozí). | Pokusí se odeslat nevyřízená data pro soket orientovaný na připojení (například TCP), dokud nevyprší vypršení časového limitu výchozího protokolu IP. |
true (povoleno) |
Nenulový časový limit | Pokusí se odeslat nevyřízená data, dokud nevyprší zadaný časový limit a pokud pokus selže, služba Winsock připojení resetuje. |
true (povoleno) |
Časový limit nuly. | Zahodí všechna čekající data. V případě soketu orientovaného na připojení (například TCP) služba Winsock připojení resetuje. |
Zásobník IP adres vypočítá výchozí časové období vypršení časového limitu protokolu IP, které se použije na základě doby odezvy připojení. Ve většině případů je časový limit vypočítaný zásobníkem relevantnější než jeden definovaný aplikací. Toto je výchozí chování soketu LingerState , pokud vlastnost není nastavena.
LingerTime Pokud je vlastnost uložená ve LingerState vlastnosti nastavena vyšší než výchozí časový limit protokolu IP, výchozí časový limit protokolu IP se bude dál používat a přepsat.