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 avoir appelé la méthode Close() ; sinon false.

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.

S’applique à