Socket.Available Propriedade

Definição

Obtém a quantidade de dados recebidos da rede e disponíveis para leitura.Gets the amount of data that has been received from the network and is available to be read.

public:
 property int Available { int get(); };
public int Available { get; }
member this.Available : int
Public ReadOnly Property Available As Integer

Valor da propriedade

Int32

O número de bytes de dados recebidos da rede e disponíveis para serem lidos.The number of bytes of data received from the network and available to be read.

Exceções

Ocorreu um erro ao tentar acessar o soquete.An error occurred when attempting to access the socket.

O Socket foi fechado.The Socket has been closed.

Exemplos

O exemplo de código a seguir compara os resultados de chamar IOControl com FIONREAD e a propriedade available.The following code example compares the results of calling IOControl with FIONREAD and the Available property.

// FIONREAD is also available as the "Available" property.
const int FIONREAD = 0x4004667F;

void DisplayPendingByteCount( Socket^ s )
{
   array<Byte>^ outValue = BitConverter::GetBytes( 0 );
   
   // Check how many bytes have been received.
   s->IOControl( FIONREAD, nullptr, outValue );

   UInt32 bytesAvailable = BitConverter::ToUInt32( outValue, 0 );
   Console::WriteLine( "server has {0} bytes pending. Available property says {1}.",
      bytesAvailable, s->Available );

   return;
}
 // 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;
 }

Comentários

Se você estiver usando um não bloqueio Socket , Available é uma boa maneira de determinar se os dados são enfileirados para leitura, antes de chamar Receive .If you are using a non-blocking Socket, Available is a good way to determine whether data is queued for reading, before calling Receive. Os dados disponíveis são a quantidade total de dados enfileirados no buffer de rede para leitura.The available data is the total amount of data queued in the network buffer for reading. Se nenhum dado for enfileirado no buffer de rede, Available retornará 0.If no data is queued in the network buffer, Available returns 0.

Se o host remoto desligar ou fechar a conexão, o Available poderá lançar um SocketException .If the remote host shuts down or closes the connection, Available can throw a SocketException. Se você receber um SocketException , use a SocketException.ErrorCode propriedade para obter o código de erro específico.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. 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.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Observação

Esse membro emite o rastreamento de informações quando você ativa o rastreamento de rede em seu aplicativo.This member outputs trace information when you enable network tracing in your application. Para obter mais informações, consulte rastreamento de rede na .NET Framework.For more information, see Network Tracing in the .NET Framework.

Aplica-se a

Confira também