Partager via


TcpClient.LingerState Propriété

Définition

Obtient ou définit les informations relatives à l'état de maintien du socket associé.

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

Valeur de propriété

LingerOption Par défaut, la persistance est désactivée.

Exemples

L’exemple de code suivant définit et obtient le temps de persistance des 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

Remarques

La LingerState propriété modifie le comportement Close de la méthode. Cette propriété lorsqu’elle est définie modifie les conditions dans lesquelles la connexion peut être réinitialisée par Winsock. Les réinitialisations de connexion peuvent toujours se produire en fonction du comportement du protocole IP.

Cette propriété contrôle la durée pendant laquelle la connexion TCP reste ouverte après un appel à quand les données restent à Close envoyer. Lorsque vous appelez la méthode, les Write données sont placées dans la mémoire tampon réseau sortante. Cette propriété peut être utilisée pour garantir que ces données sont envoyées à l’hôte distant avant que la Close méthode ne supprime la connexion.

Pour activer la persistance, créez un LingerOption instance contenant les valeurs souhaitées et définissez la LingerState propriété sur cette instance.

Le tableau suivant décrit le comportement de la Close méthode pour les valeurs possibles de la Enabled propriété et de la LingerTime propriété stockée dans la LingerState propriété.

LingerState.Enabled LingerState.LingerTime Comportement
false (désactivé), la valeur par défaut Le délai d’attente n’est pas applicable (valeur par défaut). Tente d’envoyer des données en attente jusqu’à l’expiration du délai d’expiration du protocole IP par défaut.
true (activé) Un délai d’attente différent de zéro Tente d’envoyer des données en attente jusqu’à l’expiration du délai d’attente spécifié, et si la tentative échoue, Winsock réinitialise la connexion.
true (activé) Délai d’expiration zéro. Ignore toutes les données en attente et Winsock réinitialise la connexion.

La pile IP calcule le délai d’expiration du protocole IP par défaut à utiliser en fonction du temps aller-retour de la connexion. Dans la plupart des cas, le délai d’attente calculé par la pile est plus pertinent que celui défini par une application. Il s’agit du comportement par défaut d’un socket lorsque la LingerState propriété n’est pas définie.

Lorsque la LingerTime propriété stockée dans la LingerState propriété est définie au-delà du délai d’expiration du protocole IP par défaut, le délai d’expiration du protocole IP par défaut s’applique toujours et remplace.

S’applique à

Voir aussi