Socket.Poll Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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
truese 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
truese processar a Connect e a ligação tiver sido bem-sucedida ou se os dados puderem ser enviados. - Para SelectError, retorna
truese 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
truese 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
truese processar a Connect e a ligação tiver sido bem-sucedida ou se os dados puderem ser enviados. - Para SelectError, retorna
truese 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.