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 |
---|---|
Fehler beim Zugriff auf den Socket. Weitere Informationen finden Sie im Abschnitt Hinweise. |
|
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