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
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
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 valores de SelectMode.
Devoluciones
Estado del objeto Socket según el valor del modo de sondeo que se pase en el parámetro mode
. Devuelve true
si se produce alguna de las condiciones siguientes antes timeout
de que expire; de lo contrario, false
.
- Para SelectRead, devuelve
true
si Listen() se ha llamado a y hay una conexión pendiente, si los datos están disponibles para lectura, o si la conexión se ha cerrado, restablecido o finalizado. - Para SelectWrite, devuelve
true
si el procesamiento de y Connect la conexión se ha realizado correctamente o si se pueden enviar datos. - Para SelectError, devuelve
true
si se procesa un Connect objeto que no se bloquea y se produce un error en la conexión, o si OutOfBandInline no está establecido y los datos fuera de banda están disponibles. - De lo contrario, devuelve
false
.
Excepciones
timeout
es menor que -1 milisegundos o mayor que MaxValue milisegundos.
Error al intentar acceder al socket.
El Socket se ha cerrado.
Se aplica a
Poll(Int32, SelectMode)
- 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 que se va a esperar una respuesta, en microsegundos.
- mode
- SelectMode
Uno de los valores de SelectMode.
Devoluciones
Estado del objeto Socket según el valor del modo de sondeo que se pase en el parámetro mode
.
- Para SelectRead, devuelve
true
si Listen() se ha llamado a y hay una conexión pendiente, si los datos están disponibles para lectura, o si la conexión se ha cerrado, restablecido o finalizado. - Para SelectWrite, devuelve
true
si el procesamiento de y Connect la conexión se ha realizado correctamente o si se pueden enviar datos. - Para SelectError, devuelve
true
si se procesa un Connect objeto que no se bloquea y se produce un error en la conexión, o si OutOfBandInline no está establecido y los datos fuera de banda están disponibles. - De lo contrario, devuelve
false
.
Excepciones
El parámetro mode
no es un valor de SelectMode.
Error al intentar acceder al socket. Vea los comentarios más abajo.
El Socket se 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 = 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
Comentarios
El Poll método comprueba el estado de Socket. Especifique SelectMode.SelectRead para el selectMode
parámetro para determinar si Socket es legible. Especifique SelectMode.SelectWrite para determinar si Socket se 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 está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, es posible 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 cuando se habilita el seguimiento de red en la aplicación. Para obtener más información, vea Seguimiento de red en .NET Framework.