Socket.Poll Método

Definición

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.

Consulte también

Se aplica a