TcpClient.LingerState Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta le informazioni sullo stato di ritardo del socket associato.
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
Valore della proprietà
Oggetto LingerOption. Per impostazione predefinita, il tempo di ritardo è disabilitato.
Esempio
L'esempio di codice seguente imposta e ottiene il tempo persistente dei socket.
// 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
Commenti
La LingerState
proprietà modifica il modo in cui Close si comporta il metodo. Questa proprietà quando impostata modifica le condizioni in cui la connessione può essere reimpostata da Winsock. Le reimpostazioni della connessione possono comunque verificarsi in base al comportamento del protocollo IP.
Questa proprietà controlla il periodo di tempo in cui la connessione TCP rimarrà aperta dopo una chiamata a Close quando i dati rimangono da inviare. Quando si chiama il metodo, i Write dati vengono inseriti nel buffer di rete in uscita. Questa proprietà può essere usata per assicurarsi che questi dati vengano inviati all'host remoto prima che il Close metodo elimina la connessione.
Per abilitare il ritardo, creare un'istanza LingerOption contenente i valori desiderati e impostare la LingerState
proprietà su questa istanza.
Nella tabella seguente viene descritto il comportamento del Close metodo per i valori possibili della Enabled proprietà e la LingerTime proprietà archiviata nella LingerState
proprietà .
LingerState.Enabled | LingerState.LingerTime | Comportamento |
---|---|---|
false (disabilitato), il valore predefinito |
Il timeout non è applicabile(impostazione predefinita). | Tenta di inviare dati in sospeso fino alla scadenza del timeout del protocollo IP predefinito. |
true (abilitato) |
Timeout diverso da zero | Tenta di inviare dati in sospeso fino alla scadenza del timeout specificato e, se il tentativo ha esito negativo, Winsock reimposta la connessione. |
true (abilitato) |
Timeout zero. | Elimina i dati in sospeso e Winsock reimposta la connessione. |
Lo stack IP calcola il timeout predefinito del protocollo IP da usare in base al tempo di round trip della connessione. Nella maggior parte dei casi, il timeout calcolato dallo stack è più rilevante di uno definito da un'applicazione. Si tratta del comportamento predefinito per un socket quando la LingerState
proprietà non è impostata.
Quando la LingerTime proprietà archiviata nella LingerState
proprietà è maggiore del timeout del protocollo IP predefinito, il timeout predefinito del protocollo IP verrà comunque applicato e sottoposto a override.