Freigeben über


Socket.Available-Eigenschaft

Ruft die Datenmenge ab, die über das Netzwerk empfangen wurde und gelesen werden kann.

Namespace: System.Net.Sockets
Assembly: System (in system.dll)

Syntax

'Declaration
Public ReadOnly Property Available As Integer
'Usage
Dim instance As Socket
Dim value As Integer

value = instance.Available
public int Available { get; }
public:
property int Available {
    int get ();
}
/** @property */
public int get_Available ()
public function get Available () : int

Eigenschaftenwert

Die Anzahl der Datenbytes, die vom Netzwerk empfangen wurden und zum Lesen zur Verfügung stehen.

Ausnahmen

Ausnahmetyp Bedingung

SocketException

Fehler beim Zugriff auf den Socket. Weitere Informationen finden Sie im Abschnitt Hinweise.

ObjectDisposedException

Der Socket wurde geschlossen.

Hinweise

Wenn Sie einen nicht blockierenden Socket verwenden, können Sie über Available leicht bestimmen, ob sich zu lesende Daten in der Warteschlange befinden, bevor Sie Receive aufrufen. Die verfügbaren Daten entsprechen der gesamten zu lesenden Datenmenge in der Warteschlange des Netzwerkpuffers. Wenn sich in der Warteschlange im Netzwerkpuffer keine Daten befinden, gibt Available 0 zurück.

Wenn der Remotehost beendet wird oder die Verbindung schließt, kann Available eine SocketException auslösen. Wenn Sie eine SocketException erhalten, können Sie mit der SocketException.ErrorCode-Eigenschaft den spezifischen Fehlercode abrufen. Nachdem Sie diesen Code abgerufen haben, finden Sie in der Dokumentation der MSDN Library zu API-Fehlercodes unter Windows Sockets, Version 2, eine ausführliche Beschreibung des Fehlers.

Hinweis

Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren. Weitere Informationen finden Sie unter Netzwerkablaufverfolgung.

Beispiel

Im folgenden Codebeispiel werden die Ergebnisse des Aufrufs von IOControl mit FIONREAD und der Available-Eigenschaft verglichen.

 // 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;
 }
// 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 static final int FIONREAD = 0x4004667F;

static void DisplayPendingByteCount(Socket s)
{
    ubyte outValue[] = BitConverter.GetBytes(0);
    // Check how many bytes have been received.
    s.IOControl(FIONREAD, null, outValue);

    UInt32 bytesAvailable = BitConverter.ToUInt32(outValue, 0);
    //ToDo: Unsigned Integers not supported- converted to int
    Console.WriteLine("server has {0} bytes pending. Available property "
        + "says {1}.", bytesAvailable.ToString(), 
        (System.Int32)s.get_Available());
    return;
} //DisplayPendingByteCount

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

Socket-Klasse
Socket-Member
System.Net.Sockets-Namespace
Receive
Stream
Dgram