Udostępnij za pośrednictwem


Socket.Available Właściwość

Definicja

Pobiera ilość danych, które zostały odebrane z sieci i jest dostępna do odczytu.

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

Wartość właściwości

Liczba bajtów danych odebranych z sieci i dostępnych do odczytania.

Wyjątki

Wystąpił błąd podczas próby uzyskania dostępu do gniazda.

Element Socket został zamknięty.

Przykłady

Poniższy przykład kodu porównuje wyniki wywoływania funkcji IOControl z funkcją FIONREAD i właściwością Available.

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

Uwagi

Jeśli używasz elementu nieblokujące Socket, Available dobrym sposobem jest ustalenie, czy dane są w kolejce do odczytu, przed wywołaniem metody Receive. Dostępne dane to łączna ilość danych w kolejce w buforze sieci do odczytu. Jeśli żadne dane nie są kolejkowane w buforze sieciowym, Available zwraca wartość 0.

Jeśli host zdalny zostanie zamknięty lub zamknie połączenie, Available może zgłosić błąd SocketException. Jeśli zostanie wyświetlony element SocketException, użyj SocketException.ErrorCode właściwości , aby uzyskać określony kod błędu. Po uzyskaniu tego kodu zapoznaj się z dokumentacją kodu błędu interfejsu API Windows Sockets w wersji 2 , aby uzyskać szczegółowy opis błędu.

Uwaga

Ten element członkowski generuje informacje ze śledzenia pod warunkiem włączenia funkcji śledzenia sieci w aplikacji. Aby uzyskać więcej informacji, zobacz Śledzenie sieci w .NET Framework.

Dotyczy

Zobacz też