Compartir por


Socket.Poll Método

Definición

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 true si 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 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 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 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 true si 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 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 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.

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.

Consulte también

Se aplica a