TcpClient.LingerState Vlastnost

Definice

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.

Platí pro

Viz také