Socket.Poll(Int32, SelectMode) Socket.Poll(Int32, SelectMode) Socket.Poll(Int32, SelectMode) Socket.Poll(Int32, SelectMode) Method

Definición

Determina el estado de Socket.Determines the status of the 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 Int32 Int32 Int32

Tiempo que se va a esperar una respuesta, en microsegundos.The time to wait for a response, in microseconds.

mode
SelectMode SelectMode SelectMode SelectMode

Uno de los valores de SelectMode.One of the SelectMode values.

Devoluciones

Estado del objeto Socket según el valor del modo de sondeo que se pase en el parámetro mode.The status of the Socket based on the polling mode value passed in the mode parameter.

ModoMode Valor devueltoReturn Value
SelectReadEs true si se ha llamado a Listen(Int32) y hay una conexión pendiente;true if Listen(Int32) has been called and a connection is pending; O bien-or- Es true si hay datos disponibles para su lectura;true if data is available for reading; O bien-or- Es true si se cerró, restableció o terminó la conexión;true if the connection has been closed, reset, or terminated; de lo contrario, devolverá false.otherwise, returns false.
SelectWriteEs true si se procesa un método Connect(EndPoint) y la conexión se ha realizado correctamente;true, if processing a Connect(EndPoint), and the connection has succeeded; O bien-or- Es true si se pueden enviar datos;true if data can be sent; de lo contrario, devolverá false.otherwise, returns false.
SelectErrorEs true si se procesa un método Connect(EndPoint) que no se bloquea y la conexión no se ha realizado correctamente;true if processing a Connect(EndPoint) that does not block, and the connection has failed; O bien-or- Es true si no se ha establecido OutOfBandInline y hay datos fuera de banda disponibles;true if OutOfBandInline is not set and out-of-band data is available; de lo contrario, devolverá false.otherwise, returns false.

Excepciones

El parámetro mode no es un valor de SelectMode.The mode parameter is not one of the SelectMode values.

Error al intentar acceder al socket.An error occurred when attempting to access the socket. Vea los comentarios más abajo.See remarks below.

Ejemplos

En el ejemplo de código siguiente se crea un socket, se conecta a un servidor y utiliza Poll para comprobar el estado del socket.The following code example creates a socket, connects to a server, and uses Poll to check the status of the 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 comprobará el estado de la Socket.The Poll method will check the state of the Socket. Especificar SelectMode.SelectRead para el selectMode parámetro para determinar si la Socket es legible.Specify SelectMode.SelectRead for the selectMode parameter to determine if the Socket is readable. Especificar SelectMode.SelectWrite para determinar si la Socket es grabable.Specify SelectMode.SelectWrite to determine if the Socket is writable. Use SelectMode.SelectError para detectar una condición de error.Use SelectMode.SelectError to detect an error condition. Poll bloqueará la ejecución hasta que el período de tiempo especificado, expresada en microseconds, transcurre.Poll will block execution until the specified time period, measured in microseconds, elapses. Establecer el microSeconds parámetro en un entero negativo si desea esperar una respuesta de forma indefinida.Set the microSeconds parameter to a negative integer if you would like to wait indefinitely for a response. Si desea comprobar el estado de varios sockets, es preferible usar el Select método.If you want to check the status of multiple sockets, you might prefer to use the Select method.

Nota

Si recibe un SocketException, utilice el SocketException.ErrorCode propiedad para obtener el código de error específico.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. Después de haber obtenido este código, consulte el código de error de API de la versión 2 de Windows Sockets documentación para obtener una descripción detallada del error.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Nota

Este método no puede detectar ciertos tipos de problemas de conexión, como un cable de red rota, o que el host remoto cierre brusco.This method cannot detect certain kinds of connection problems, such as a broken network cable, or that the remote host was shut down ungracefully. Debe intentar enviar o recibir datos para detectar estos tipos de errores.You must attempt to send or receive data to detect these kinds of errors.

Nota

Este miembro genera información de seguimiento cuando se habilita el seguimiento de red en la aplicación.This member outputs trace information when you enable network tracing in your application. Para obtener más información, consulte seguimiento de red en .NET Framework.For more information, see Network Tracing in the .NET Framework.

Se aplica a

Consulte también: