Partager via


Socket.Poll Méthode

Définition

Surcharges

Poll(TimeSpan, SelectMode)

Détermine l'état de Socket.

Poll(Int32, SelectMode)

Détermine l'état de Socket.

Poll(TimeSpan, SelectMode)

Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs

Détermine l'état de Socket.

public:
 bool Poll(TimeSpan timeout, System::Net::Sockets::SelectMode mode);
public bool Poll (TimeSpan timeout, System.Net.Sockets.SelectMode mode);
member this.Poll : TimeSpan * System.Net.Sockets.SelectMode -> bool
Public Function Poll (timeout As TimeSpan, mode As SelectMode) As Boolean

Paramètres

timeout
TimeSpan

Délai d’attente d’une réponse.

mode
SelectMode

Une des valeurs de l'objet SelectMode.

Retours

État du Socket basé sur la valeur de mode d'appel passée dans le paramètre mode. Retourne true si l’une des conditions suivantes se produit avant l’expiration timeout , sinon, false.

  • Pour SelectRead, il retourne true si Listen() a été appelé et qu’une connexion est en attente, si les données sont disponibles pour la lecture ou si la connexion a été fermée, réinitialisée ou terminée.
  • Pour SelectWrite, elle retourne true si le traitement d’un Connect et que la connexion a réussi ou si des données peuvent être envoyées.
  • Pour SelectError, elle retourne true si le traitement d’un Connect qui ne bloque pas et que la connexion a échoué, ou si OutOfBandInline n’est pas défini et que des données hors bande sont disponibles.
  • Sinon, falseest retourné.

Exceptions

timeout est inférieur à -1 milliseconde ou supérieur à MaxValue millisecondes.

Une erreur s’est produite pendant la tentative d’accès au socket.

S’applique à

Poll(Int32, SelectMode)

Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs

Détermine l'état de Socket.

public:
 bool Poll(int microSeconds, System::Net::Sockets::SelectMode mode);
public bool Poll (int microSeconds, System.Net.Sockets.SelectMode mode);
member this.Poll : int * System.Net.Sockets.SelectMode -> bool
Public Function Poll (microSeconds As Integer, mode As SelectMode) As Boolean

Paramètres

microSeconds
Int32

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

mode
SelectMode

Une des valeurs de l'objet SelectMode.

Retours

État du Socket basé sur la valeur de mode d'appel passée dans le paramètre mode.

  • Pour SelectRead, il retourne true si Listen() a été appelé et qu’une connexion est en attente, si les données sont disponibles pour la lecture ou si la connexion a été fermée, réinitialisée ou terminée.
  • Pour SelectWrite, elle retourne true si le traitement d’un Connect et que la connexion a réussi ou si des données peuvent être envoyées.
  • Pour SelectError, elle retourne true si le traitement d’un Connect qui ne bloque pas et que la connexion a échoué, ou si OutOfBandInline n’est pas défini et que des données hors bande sont disponibles.
  • Sinon, falseest retourné.

Exceptions

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

Une erreur s’est produite pendant la tentative d’accès au socket. Consultez la section Notes ci-dessous.

Exemples

L’exemple de code suivant crée un socket, se connecte à un serveur et utilise Poll pour case activée le status du socket.

//Creates the Socket for sending data over TCP.
Socket^ s = gcnew 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.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.
Dim s As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)

' Connects to host using IPEndPoint.
s.Connect(EPhost)
If Not s.Connected Then
   strRetPage = "Unable to connect to host"
End If
' Use the SelectWrite enumeration to obtain Socket status.
If s.Poll(- 1, SelectMode.SelectWrite) Then
   Console.WriteLine("This Socket is writable.")
Else
   If s.Poll(- 1, SelectMode.SelectRead) Then
      Console.WriteLine(("This Socket is readable. "))
   Else
      If s.Poll(- 1, SelectMode.SelectError) Then
         Console.WriteLine("This Socket has an error.")
      End If
   End If 
End If

Remarques

La Poll méthode vérifie l’état de .Socket Spécifiez SelectMode.SelectRead le selectMode paramètre pour déterminer si est Socket lisible. Spécifiez SelectMode.SelectWrite pour déterminer si le 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 ou que les données soient disponibles. Définissez le microSeconds paramètre sur un entier négatif si vous souhaitez attendre indéfiniment une réponse. Si vous souhaitez case activée le status de plusieurs sockets, vous préférerez peut-être utiliser la Select méthode .

Notes

Si vous recevez un SocketException, utilisez la SocketException.ErrorCode propriété pour obtenir le code d’erreur spécifique. Une fois ce code obtenu, reportez-vous à la documentation du code d’erreur de l’API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.

Notes

Cette méthode ne peut pas détecter certains types de problèmes de connexion, tels qu’un câble réseau défectueux, ou le fait que l’hôte distant a été arrêté sans dommage. Vous devez tenter d’envoyer ou de recevoir des données pour détecter ces types d’erreurs.

Notes

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 Suivi réseau dans .NET Framework.

Voir aussi

S’applique à