Socket.Poll Método

Definição

Sobrecargas

Name Description
Poll(TimeSpan, SelectMode)

Determina o estado do Socket.

Poll(Int32, SelectMode)

Determina o estado do Socket.

Poll(TimeSpan, SelectMode)

Origem:
Socket.cs
Origem:
Socket.cs
Origem:
Socket.cs
Origem:
Socket.cs
Origem:
Socket.cs

Determina o estado do 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

O tempo para esperar por uma resposta.

mode
SelectMode

Um dos SelectMode valores.

Devoluções

O estado do Socket com base no valor do modo de sondagem passado no mode parâmetro. Retornos true se alguma das seguintes condições ocorrer antes de expirar timeout , caso contrário, false.

  • Para SelectRead, devolve true se Listen() foi chamada e uma ligação está pendente, se houver dados disponíveis para leitura, ou se a ligação foi encerrada, reiniciada ou terminada.
  • Para SelectWrite, retorna true se processar a Connect e a ligação tiver sido bem-sucedida ou se os dados puderem ser enviados.
  • Para SelectError, retorna true se o processamento de um Connect que não bloqueia e a ligação falhou, ou se OutOfBandInline não estiver definido e os dados fora de banda estiverem disponíveis.
  • Caso contrário, ele retorna false.

Exceções

timeout é inferior a -1 milissegundos ou superior a MaxValue milissegundos.

Ocorreu um erro ao tentar aceder ao soquete.

O Socket local foi encerrado.

Aplica-se a

Poll(Int32, SelectMode)

Origem:
Socket.cs
Origem:
Socket.cs
Origem:
Socket.cs
Origem:
Socket.cs
Origem:
Socket.cs

Determina o estado do 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

O tempo para esperar por uma resposta, em microssegundos.

mode
SelectMode

Um dos SelectMode valores.

Devoluções

O estado do Socket com base no valor do modo de sondagem passado no mode parâmetro.

  • Para SelectRead, devolve true se Listen() foi chamada e uma ligação está pendente, se houver dados disponíveis para leitura, ou se a ligação foi encerrada, reiniciada ou terminada.
  • Para SelectWrite, retorna true se processar a Connect e a ligação tiver sido bem-sucedida ou se os dados puderem ser enviados.
  • Para SelectError, retorna true se o processamento de um Connect que não bloqueia e a ligação falhou, ou se OutOfBandInline não estiver definido e os dados fora de banda estiverem disponíveis.
  • Caso contrário, ele retorna false.

Exceções

O mode parâmetro não é um dos valores SelectMode .

Ocorreu um erro ao tentar aceder ao soquete. Veja as observações abaixo.

O Socket local foi encerrado.

Exemplos

O seguinte exemplo de código cria um soquete, liga-se a um servidor e é usado Poll para verificar o estado do soquete.

//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

Observações

O Poll método verifica o estado do Socket. Especifique SelectMode.SelectRead para o selectMode parâmetro para determinar se o Socket é legível. Especifique SelectMode.SelectWrite para determinar se é Socket gravável. SelectMode.SelectError Use para detetar uma condição de erro. Poll bloqueará a execução até que o período de tempo especificado, medido em microseconds, decorra ou os dados fiquem disponíveis. Defina o microSeconds parâmetro para um inteiro negativo se quiser esperar indefinidamente por uma resposta. Se quiseres verificar o estado de vários soquetes, talvez prefiras usar o Select método.

Note

Se receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico. Depois de obter este código, consulte a documentação do código de erro da API Windows versão 2 dos Sockets para uma descrição detalhada do erro.

Note

Este método não consegue detetar certos tipos de problemas de ligação, como um cabo de rede partido, ou que o host remoto foi desligado de forma desajeitada. Deve tentar enviar ou receber dados para detetar este tipo de erros.

Note

Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para mais informações, consulte Network Tracing in .NET Framework.

Ver também

Aplica-se a