Sdílet prostřednictvím


LingerOption.LingerTime Vlastnost

Definice

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.

Platí pro