Partager via


LingerOption(Boolean, Int32) Constructeur

Définition

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

enable
Boolean

true pour rester connecté après l’appel de la Close() méthode ; sinon, false.

seconds
Int32

Nombre de secondes à rester connecté après l’appel de la Close() méthode.

Exemples

L’exemple suivant montre comment définir un élément créé Socket précédemment de façon à s’attarder une seconde après avoir appelé la Close méthode.

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 peut toujours y avoir des données disponibles dans la mémoire tampon du réseau sortant une fois que vous fermez le Socket. Utilisez le enable paramètre pour spécifier si vous souhaitez Socket continuer à transmettre des données non transmises après l’appel de la méthode close. Utilisez le seconds paramètre pour indiquer la Socket durée pendant laquelle vous souhaitez tenter de transférer des données nonentes avant de expirer. Si vous spécifiez true pour le enable paramètre et 0 pour le seconds paramètre, vous Socket tentez d’envoyer des données jusqu’à ce qu’il n’y ait pas de données laissées dans la mémoire tampon réseau sortante. Si vous spécifiez false pour le enable paramètre, la Socket fermeture est immédiate et toutes les données nonentes sont perdues.

Le tableau suivant décrit le comportement sur les Socket.Close méthodes et TcpClient.Close les valeurs possibles des paramètres et seconds des enable valeurs lorsqu’une instance T :System.Net.Sockets.LingerOption est créée et définie dans la ou TcpClient.LingerState la Socket.LingerState propriété.

enable seconds Comportement
false (désactivé), 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’expiration différent de zéro Tente d’envoyer des données en attente jusqu’à l’expiration du délai d’expiration spécifié et, si la tentative échoue, Winsock réinitialise la connexion.
true (activé) Délai d’expiration zéro. Ignore 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 de l’heure d’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 plus que le 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 se substitue.

S’applique à