Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ruft einen Wert ab, der angibt, ob im NetworkStream Daten für einen Lesevorgang verfügbar sind.
Namespace: System.Net.Sockets
Assembly: System (in system.dll)
Syntax
'Declaration
Public Overridable ReadOnly Property DataAvailable As Boolean
'Usage
Dim instance As NetworkStream
Dim value As Boolean
value = instance.DataAvailable
public virtual bool DataAvailable { get; }
public:
virtual property bool DataAvailable {
bool get ();
}
/** @property */
public boolean get_DataAvailable ()
public function get DataAvailable () : boolean
Eigenschaftenwert
true, wenn im Stream Daten für den Lesevorgang verfügbar sind, andernfalls false.
Ausnahmen
| Ausnahmetyp | Bedingung |
|---|---|
Der NetworkStream ist geschlossen. |
|
Der zugrunde liegende Socket ist geschlossen. |
|
Verwenden Sie die SocketException.ErrorCode-Eigenschaft, um den spezifischen Fehlercode abzurufen. In MSDN finden Sie in der Dokumentation zu API-Fehlercodes unter Windows Sockets, Version 2, eine ausführliche Beschreibung des Fehlers. |
Hinweise
Verwenden Sie die DataAvailable-Eigenschaft, um zu bestimmen, ob Daten gelesen werden können. Wenn DataAvailable den Wert true hat, wird der Aufruf von Read unmittelbar beendet. Wenn der Remotehost beendet wird oder die Verbindung schließt, löst DataAvailable möglicherweise eine SocketException aus.
Beispiel
Im folgenden Codebeispiel wird so lange aus dem NetworkStream gelesen, bis keine Daten mehr vorhanden sind.
' Check to see if this NetworkStream is readable.
If myNetworkStream.CanRead Then
Dim myReadBuffer(1024) As Byte
Dim myCompleteMessage As StringBuilder = New StringBuilder()
Dim numberOfBytesRead As Integer = 0
' Incoming message may be larger than the buffer size.
Do
numberOfBytesRead = myNetworkStream.Read(myReadBuffer, 0, myReadBuffer.Length)
myCompleteMessage.AppendFormat("{0}", Encoding.ASCII.GetString(myReadBuffer, 0, numberOfBytesRead))
Loop While myNetworkStream.DataAvailable
' Print out the received message to the console.
Console.WriteLine(("You received the following message : " + myCompleteMessage.ToString()))
Else
Console.WriteLine("Sorry. You cannot read from this NetworkStream.")
End If
// Check to see if this NetworkStream is readable.
if(myNetworkStream.CanRead){
byte[] myReadBuffer = new byte[1024];
StringBuilder myCompleteMessage = new StringBuilder();
int numberOfBytesRead = 0;
// Incoming message may be larger than the buffer size.
do{
numberOfBytesRead = myNetworkStream.Read(myReadBuffer, 0, myReadBuffer.Length);
myCompleteMessage.AppendFormat("{0}", Encoding.ASCII.GetString(myReadBuffer, 0, numberOfBytesRead));
}
while(myNetworkStream.DataAvailable);
// Print out the received message to the console.
Console.WriteLine("You received the following message : " +
myCompleteMessage);
}
else{
Console.WriteLine("Sorry. You cannot read from this NetworkStream.");
}
// Check to see if this NetworkStream is readable.
if ( myNetworkStream->CanRead )
{
array<Byte>^ myReadBuffer = gcnew array<Byte>(1024);
String^ myCompleteMessage = "";
int numberOfBytesRead = 0;
// Incoming message may be larger than the buffer size.
do
{
numberOfBytesRead = myNetworkStream->Read( myReadBuffer, 0,
myReadBuffer->Length );
myCompleteMessage = String::Concat( myCompleteMessage,
Encoding::ASCII->GetString( myReadBuffer, 0, numberOfBytesRead ) );
}
while ( myNetworkStream->DataAvailable );
// Print out the received message to the console.
Console::WriteLine( "You received the following message : {0}",
myCompleteMessage );
}
else
{
Console::WriteLine( "Sorry. You cannot read from this NetworkStream." );
}
// Check to see if this NetworkStream is readable.
if (myNetworkStream.get_CanRead()) {
ubyte myReadBuffer[] = new ubyte[1024];
String myCompleteMessage = "";
int numberOfBytesRead = 0;
// Incoming message may be larger than the buffer size.
do {
numberOfBytesRead = myNetworkStream.Read(myReadBuffer,
0, myReadBuffer.get_Length());
myCompleteMessage = String.Concat(myCompleteMessage,
Encoding.get_ASCII().GetString(myReadBuffer, 0,
numberOfBytesRead));
} while (myNetworkStream.get_DataAvailable());
// Print out the received message to the console.
Console.WriteLine("You received the following message : "
+ myCompleteMessage);
}
else {
Console.WriteLine("Sorry. You cannot read from this "
+ "NetworkStream.");
}
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
NetworkStream-Klasse
NetworkStream-Member
System.Net.Sockets-Namespace
Read