Socket.Poll Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Sobrecargas
| Nombre | Description |
|---|---|
| Poll(TimeSpan, SelectMode) |
Determina el estado de Socket. |
| Poll(Int32, SelectMode) |
Determina el estado de Socket. |
Poll(TimeSpan, SelectMode)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Determina el estado 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
Parámetros
- timeout
- TimeSpan
Tiempo para esperar una respuesta.
- mode
- SelectMode
Uno de los SelectMode valores.
Devoluciones
El estado de Socket en función del valor del modo de sondeo pasado en el mode parámetro . Devuelve true si se produce alguna de las condiciones siguientes antes de que timeout expire; de lo contrario, false.
- Para SelectRead, devuelve
truesi Listen() se ha llamado a y hay una conexión pendiente, si los datos están disponibles para su lectura, o si la conexión se ha cerrado, restablecido o finalizado. - Para SelectWrite, devuelve
truesi el procesamiento de y Connect la conexión se ha realizado correctamente o si se pueden enviar datos. - Para SelectError, devuelve
truesi el procesamiento de un Connect que no bloquea y la conexión ha fallado, o si OutOfBandInline no está establecido y los datos fuera de banda están disponibles. - En caso contrario, devuelve
false.
Excepciones
timeout es menor que -1 milisegundos o mayor que MaxValue milisegundos.
Error al intentar acceder al socket.
Se Socket ha cerrado.
Se aplica a
Poll(Int32, SelectMode)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Determina el estado 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
Parámetros
- microSeconds
- Int32
Tiempo para esperar una respuesta, en microsegundos.
- mode
- SelectMode
Uno de los SelectMode valores.
Devoluciones
El estado de Socket en función del valor del modo de sondeo pasado en el mode parámetro .
- Para SelectRead, devuelve
truesi Listen() se ha llamado a y hay una conexión pendiente, si los datos están disponibles para su lectura, o si la conexión se ha cerrado, restablecido o finalizado. - Para SelectWrite, devuelve
truesi el procesamiento de y Connect la conexión se ha realizado correctamente o si se pueden enviar datos. - Para SelectError, devuelve
truesi el procesamiento de un Connect que no bloquea y la conexión ha fallado, o si OutOfBandInline no está establecido y los datos fuera de banda están disponibles. - En caso contrario, devuelve
false.
Excepciones
El mode parámetro no es uno de los SelectMode valores.
Error al intentar acceder al socket. Vea los comentarios a continuación.
Se Socket ha cerrado.
Ejemplos
En el ejemplo de código siguiente se crea un socket, se conecta a un servidor y se usa Poll para comprobar el estado del 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.
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
Comentarios
El Poll método comprueba el estado de .Socket Especifique SelectMode.SelectRead para el selectMode parámetro para determinar si es Socket legible. Especifique SelectMode.SelectWrite para determinar si se Socket puede escribir . Use SelectMode.SelectError para detectar una condición de error.
Poll bloqueará la ejecución hasta que el período de tiempo especificado, medido en microseconds, transcurre o los datos estarán disponibles. Establezca el microSeconds parámetro en un entero negativo si desea esperar indefinidamente una respuesta. Si desea comprobar el estado de varios sockets, puede que prefiera usar el Select método .
Nota:
Si recibe un SocketException, use la SocketException.ErrorCode propiedad para obtener el código de error específico. Después de obtener este código, consulte la documentación del código de error de la API de Windows Sockets versión 2 para obtener una descripción detallada del error.
Nota:
Este método no puede detectar ciertos tipos de problemas de conexión, como un cable de red roto o que el host remoto se cerró de forma incorrecta. Debe intentar enviar o recibir datos para detectar estos tipos de errores.
Nota:
Este miembro genera información de seguimiento al habilitar el seguimiento de red en la aplicación. Para obtener más información, consulte Seguimiento de red en .NET Framework.