TcpClient.LingerState Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.