Comparteix a través de


TcpClient.LingerState Propiedad

Definición

Obtiene o establece información sobre el estado de permanencia del socket asociado.

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

Valor de propiedad

Objeto LingerOption. La permanencia está deshabilitada de manera predeterminada.

Ejemplos

En el ejemplo de código siguiente se establece y obtiene el tiempo de persistencia de los sockets.

// 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

Comentarios

La LingerState propiedad cambia el comportamiento Close del método . Esta propiedad cuando se establece modifica las condiciones en las que Winsock puede restablecer la conexión. Todavía se pueden producir restablecimientos de conexión en función del comportamiento del protocolo IP.

Esta propiedad controla el período de tiempo que la conexión TCP permanecerá abierta después de una llamada a Close cuando se envíen los datos. Al llamar al método , los Write datos se colocan en el búfer de red saliente. Esta propiedad se puede usar para asegurarse de que estos datos se envían al host remoto antes de que el Close método deje de establecer la conexión.

Para habilitar la persistencia, cree una LingerOption instancia que contenga los valores deseados y establezca la LingerState propiedad en esta instancia.

En la tabla siguiente se describe el comportamiento del Close método para los posibles valores de la Enabled propiedad y la LingerTime propiedad almacenada en la LingerState propiedad .

LingerState.Enabled LingerState.LingerTime Comportamiento
false (deshabilitado), el valor predeterminado El tiempo de espera no es aplicable (valor predeterminado). Intenta enviar datos pendientes hasta que expire el tiempo de espera predeterminado del protocolo IP.
true (habilitado) Tiempo de espera distinto de cero Intenta enviar datos pendientes hasta que expire el tiempo de espera especificado y, si se produce un error en el intento, Winsock restablece la conexión.
true (habilitado) Un tiempo de espera cero. Descarta los datos pendientes y Winsock restablece la conexión.

La pila de IP calcula el período de tiempo de espera predeterminado del protocolo IP que se usará en función del tiempo de ida y vuelta de la conexión. En la mayoría de los casos, el tiempo de espera calculado por la pila es más relevante que uno definido por una aplicación. Este es el comportamiento predeterminado de un socket cuando no se establece la LingerState propiedad .

Cuando la LingerTime propiedad almacenada en la LingerState propiedad se establece mayor que el tiempo de espera predeterminado del protocolo IP, el tiempo de espera predeterminado del protocolo IP se seguirá aplicando e invalidará.

Se aplica a

Consulte también