Cette documentation est archivée et n’est pas conservée.

Socket.Poll, méthode

Détermine l'état de Socket.

Espace de noms : System.Net.Sockets
Assembly : System (dans system.dll)

public bool Poll (
	int microSeconds,
	SelectMode mode
)
public boolean Poll (
	int microSeconds, 
	SelectMode mode
)
public function Poll (
	microSeconds : int, 
	mode : SelectMode
) : boolean

Paramètres

microSeconds

Temps d'attente (en microsecondes) d'une réponse.

mode

Une des valeurs de SelectMode.

Valeur de retour

Mode

Valeur de retour

SelectRead

true si la méthode Listen a été appelée et si une connexion est en attente ;

- ou -

true si des données sont disponibles pour la lecture ;

- ou -

true si la connexion a été fermée, réinitialisée ou terminée ;

sinon, retourne false.

SelectWrite

true si une méthode Connect a été utilisée et si la connexion a abouti ;

- ou -

true si des données peuvent être envoyées ;

sinon, retourne false.

SelectError

true si une méthode Connect sans blocage a été utilisée et si la connexion a échoué ;

- ou -

true si le champ OutOfBandInline n'est pas défini et si des données hors bande sont disponibles ;

sinon, retourne false.

Type d'exceptionCondition

NotSupportedException

Le paramètre mode ne fait pas partie des valeurs SelectMode.

SocketException

Une erreur s'est produite lors de la tentative d'accès au socket. Consultez la section Notes ci-dessous.

ObjectDisposedException

Socket a été fermé.

La méthode Poll vérifie l'état de Socket. Spécifiez le champ SelectMode.SelectRead afin que le paramètre selectMode détermine si Socket est accessible en lecture. Spécifiez le champ SelectMode.SelectWrite pour déterminer si Socket est accessible en écriture. Utilisez SelectMode.SelectError pour détecter une condition d'erreur. Poll bloque l'exécution jusqu'à ce que la période spécifiée, mesurée en microseconds, s'écoule. Affectez un nombre entier négatif à microSeconds si vous souhaitez attendre indéfiniment une réponse. Si vous voulez vérifier l'état de plusieurs sockets, il est préférable d'utiliser la méthode Select.

RemarqueRemarque

Si vous recevez SocketException, utilisez la propriété SocketException.ErrorCode pour obtenir le code d'erreur spécifique. Une fois que vous avez obtenu ce code, reportez-vous à la documentation sur les codes d'erreur de l'API Windows Sockets version 2 dans MSDN Library pour obtenir une description détaillée de l'erreur.

RemarqueRemarque

Cette méthode ne peut pas détecter certains types de problèmes de connexion, tels qu'un câble réseau rompu, ou que l'hôte distant a été arrêté de manière anormale. Vous devez essayer d'envoyer ou de recevoir des données pour détecter ces types d'erreurs.

RemarqueRemarque

Ce membre génère des informations de traçage lorsque vous activez le traçage réseau dans votre application. Pour plus d'informations, consultez Traçage réseau.

L'exemple de code suivant crée un socket, se connecte à un serveur et utilise Poll pour vérifier l'état du socket.

//Creates the Socket for sending data over TCP.
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream,
   ProtocolType.Tcp );
 
// Connects to host using IPEndPoint.
s.Connect(EPhost);
if (!s.Connected)
{
   strRetPage = "Unable to connect to host";
}
// Use the SelectWrite enumeration to obtain Socket status.
 if(s.Poll(-1, SelectMode.SelectWrite)){
      Console.WriteLine("This Socket is writable.");
 }
 else if (s.Poll(-1, SelectMode.SelectRead)){
        Console.WriteLine("This Socket is readable." );
 }
 else if (s.Poll(-1, SelectMode.SelectError)){
      Console.WriteLine("This Socket has an error.");
 }


//Creates the Socket for sending data over TCP.
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, 
    ProtocolType.Tcp);
// Connects to host using IPEndPoint.
s.Connect(epHost);
if (!(s.get_Connected())) {
    strRetPage = "Unable to connect to host";
}
// Use the SelectWrite enumeration to obtain Socket status.
if (s.Poll(-1, SelectMode.SelectWrite)) {
    Console.WriteLine("This Socket is writable.");
}
else {
    if (s.Poll(-1, SelectMode.SelectRead)) {
        Console.WriteLine("This should not print."
            + "Because this is not a listening Socket,"
            + " no incoming connecton requests are expected. ");
    }
    else {
        if (s.Poll(-1, SelectMode.SelectError)) {
            Console.WriteLine("This Socket has an error.");
        }
    }
}

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

.NET Framework

Prise en charge dans : 2.0, 1.1, 1.0

.NET Compact Framework

Prise en charge dans : 2.0, 1.0
Afficher: