Socket.Poll Méthode
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.
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,
false
est 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.
Socket a été fermé.
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,
false
est 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.
Socket a été fermé.
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.