LingerOption(Boolean, Int32) Constructeur
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.
Initialise une nouvelle instance de la classe LingerOption.
public:
LingerOption(bool enable, int seconds);
public LingerOption (bool enable, int seconds);
new System.Net.Sockets.LingerOption : bool * int -> System.Net.Sockets.LingerOption
Public Sub New (enable As Boolean, seconds As Integer)
Paramètres
- seconds
- Int32
Nombre de secondes restant avant la déconnexion après avoir appelé la méthode Close().
Exemples
L’exemple suivant définit un précédemment créé Socket pour qu’il s’attarde une seconde après l’appel de la Close méthode.
LingerOption^ myOpts = gcnew LingerOption( true,1 );
mySocket->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::Linger, myOpts );
LingerOption myOpts = new LingerOption(true,1);
mySocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, myOpts);
Dim myOpts As New LingerOption(True, 1)
mySocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, _
myOpts)
Remarques
Il se peut que des données soient toujours disponibles dans la mémoire tampon réseau sortante une fois que vous avez fermé .Socket Utilisez le enable
paramètre pour spécifier si vous souhaitez que le poursuive la Socket transmission des données non transmises après l’appel de la méthode close. Utilisez le seconds
paramètre pour indiquer la durée pendant laquelle vous souhaitez que le Socket tente de transférer des données non en attente avant d’expirer. Si vous spécifiez true
pour le enable
paramètre et 0 pour le seconds
paramètre, le Socket tente d’envoyer des données jusqu’à ce qu’il ne reste plus de données dans la mémoire tampon réseau sortante. Si vous spécifiez false
pour le enable
paramètre, le Socket se ferme immédiatement et toutes les données nonentes sont perdues.
Le tableau suivant décrit le comportement des Socket.Close méthodes et TcpClient.Close en fonction des valeurs possibles des enable
paramètres et seconds
lorsqu’un instance T :System.Net.Sockets.LingerOption est créé et défini dans la Socket.LingerState propriété ouTcpClient.LingerState.
enable |
seconds |
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 pour un socket orienté connexion (TCP, par exemple) 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. Pour le socket orienté connexion (TCP, par exemple), 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.