TcpClient.LingerState 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í informace o stavu linger přidruženého soketu.
public:
property System::Net::Sockets::LingerOption ^ LingerState { System::Net::Sockets::LingerOption ^ get(); void set(System::Net::Sockets::LingerOption ^ value); };
public System.Net.Sockets.LingerOption? LingerState { get; set; }
public System.Net.Sockets.LingerOption LingerState { get; set; }
member this.LingerState : System.Net.Sockets.LingerOption with get, set
Public Property LingerState As LingerOption
Hodnota vlastnosti
Úloha LingerOption. Ve výchozím nastavení je přetrvání zakázané.
Příklady
Následující příklad kódu nastaví a získá dobu prodlevy soketů.
// sets the amount of time to linger after closing, using the LingerOption public property.
LingerOption^ lingerOption = gcnew LingerOption( true,10 );
tcpClient->LingerState = lingerOption;
// gets the amount of linger time set, using the LingerOption public property.
if ( tcpClient->LingerState->LingerTime == 10 )
Console::WriteLine( "The linger state setting was successfully set to {0}", tcpClient->LingerState->LingerTime );
// sets the amount of time to linger after closing, using the LingerOption public property.
LingerOption lingerOption = new LingerOption (true, 10);
tcpClient.LingerState = lingerOption;
// gets the amount of linger time set, using the LingerOption public property.
if (tcpClient.LingerState.LingerTime == 10)
Console.WriteLine ("The linger state setting was successfully set to " + tcpClient.LingerState.LingerTime.ToString ());
' Sets the amount of time to linger after closing, using the LingerOption public property.
Dim lingerOption As New LingerOption(True, 10)
tcpClient.LingerState = lingerOption
' Gets the amount of linger time set, using the LingerOption public property.
If tcpClient.LingerState.LingerTime = 10 Then
Console.WriteLine(("The linger state setting was successfully set to " + tcpClient.LingerState.LingerTime.ToString()))
End If
Poznámky
Vlastnost LingerState
změní způsob Close chování metody. Tato vlastnost při nastavení upraví podmínky, za kterých může rozhraní Winsock resetovat připojení. K resetování připojení může stále docházet na základě chování protokolu IP.
Tato vlastnost řídí dobu, po kterou zůstane připojení TCP otevřené po volání Close , když data ještě nebudou odeslána. Při volání Write metody se data umístí do vyrovnávací paměti odchozí sítě. Tuto vlastnost lze použít k zajištění, že se tato data odešlou vzdálenému hostiteli před ukončením Close připojení metodou.
Chcete-li povolit přetrvání, vytvořte LingerOption instanci obsahující požadované hodnoty a nastavte LingerState
vlastnost na tuto instanci.
Následující tabulka popisuje chování Close metody pro možné hodnoty Enabled vlastnosti a LingerTime vlastnosti uložené ve LingerState
vlastnosti.
LingerState.Enabled | LingerState.LingerTime | 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, dokud nevyprší 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 a 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.