Socket.Poll Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sobrecargas
Poll(TimeSpan, SelectMode) |
Determina o status do Socket. |
Poll(Int32, SelectMode) |
Determina o status do Socket. |
Poll(TimeSpan, SelectMode)
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
Determina o status 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 aguardar uma resposta.
- mode
- SelectMode
Um dos valores de SelectMode.
Retornos
O status do Socket com base no valor de modo de sondagem passado no parâmetro mode
. Retornará true
se qualquer uma das condições a seguir ocorrer antes da timeout
expiração, caso contrário, false
.
- Para SelectRead, ele retornará
true
se Listen() tiver sido chamado e uma conexão estiver pendente, se os dados estiverem disponíveis para leitura ou se a conexão tiver sido fechada, redefinida ou encerrada. - Para SelectWrite, ele retornará
true
se o processamento de um Connect e a conexão tiverem sido bem-sucedidos ou se os dados puderem ser enviados. - Para SelectError, ele retornará
true
se o processamento de um Connect que não bloquear e a conexão falhar ou se OutOfBandInline não estiver definido e os dados fora de banda estiverem disponíveis. - Caso contrário, ele retornará
false
.
Exceções
timeout
é menor que -1 milissegundos ou maior que MaxValue milissegundos.
Ocorreu um erro ao tentar acessar o soquete.
O Socket foi fechado.
Aplica-se a
Poll(Int32, SelectMode)
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
Determina o status 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 de espera por uma resposta, em microssegundos.
- mode
- SelectMode
Um dos valores de SelectMode.
Retornos
O status do Socket com base no valor de modo de sondagem passado no parâmetro mode
.
- Para SelectRead, ele retornará
true
se Listen() tiver sido chamado e uma conexão estiver pendente, se os dados estiverem disponíveis para leitura ou se a conexão tiver sido fechada, redefinida ou encerrada. - Para SelectWrite, ele retornará
true
se o processamento de um Connect e a conexão tiverem sido bem-sucedidos ou se os dados puderem ser enviados. - Para SelectError, ele retornará
true
se o processamento de um Connect que não bloquear e a conexão falhar ou se OutOfBandInline não estiver definido e os dados fora de banda estiverem disponíveis. - Caso contrário, ele retornará
false
.
Exceções
O parâmetro mode
não é um dos valores SelectMode.
Ocorreu um erro ao tentar acessar o soquete. Consulte os comentários abaixo.
O Socket foi fechado.
Exemplos
O exemplo de código a seguir cria um soquete, conecta-se a um servidor e usa Poll para marcar o status do soquete.
//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
Comentários
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 o Socket é gravável. Use SelectMode.SelectError para detectar uma condição de erro.
Poll bloqueará a execução até que o período de tempo especificado, medido em microseconds
, decorridos ou dados se torne disponível. Defina o microSeconds
parâmetro como um inteiro negativo se você quiser esperar indefinidamente por uma resposta. Se você quiser marcar o status de vários soquetes, talvez prefira usar o Select método .
Observação
Se você receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico. Depois de obter esse código, consulte a documentação do código de erro da API do Windows Sockets versão 2 para obter uma descrição detalhada do erro.
Observação
Esse método não pode detectar determinados tipos de problemas de conexão, como um cabo de rede quebrado, ou que o host remoto foi desligado sem êxito. Você deve tentar enviar ou receber dados para detectar esses tipos de erros.
Observação
Esse membro emite o rastreamento de informações quando você ativa o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de rede em .NET Framework.