Socket.Available Propriedade
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.
Obtém a quantidade de dados recebida da rede e que está disponível para leitura.
public:
property int Available { int get(); };
public int Available { get; }
member this.Available : int
Public ReadOnly Property Available As Integer
Valor de Propriedade
O número de bytes de dados recebidos da rede e disponíveis para leitura.
Exceções
Ocorreu um erro ao tentar aceder ao soquete.
O Socket local foi encerrado.
Exemplos
O exemplo de código seguinte compara os resultados de chamar IOControl com FIONREAD e a propriedade Available.
// FIONREAD is also available as the "Available" property.
public const int FIONREAD = 0x4004667F;
static void DisplayPendingByteCount(Socket s)
{
byte[] outValue = BitConverter.GetBytes(0);
// Check how many bytes have been received.
s.IOControl(FIONREAD, null, outValue);
uint bytesAvailable = BitConverter.ToUInt32(outValue, 0);
Console.WriteLine("server has {0} bytes pending. Available property says {1}.",
bytesAvailable, s.Available);
return;
}
Observações
Se estiver a usar um não-bloqueante Socket, Available é uma boa forma de determinar se os dados estão em fila para leitura, antes de chamar Receive. Os dados disponíveis são a quantidade total de dados enfileirados no buffer de rede para leitura. Se nenhum dado estiver em fila no buffer da rede, retorna Available 0.
Se o host remoto desligar ou fechar a ligação, Available pode lançar um SocketException. 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
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.