NetworkStream.DataAvailable Свойство

Определение

Возвращает значение, указывающее, имеются ли в объекте NetworkStream данные, доступные для чтения.Gets a value that indicates whether data is available on the NetworkStream to be read.

public:
 virtual property bool DataAvailable { bool get(); };
public virtual bool DataAvailable { get; }
member this.DataAvailable : bool
Public Overridable ReadOnly Property DataAvailable As Boolean

Значение свойства

Boolean

Значение true, если содержащиеся в потоке данные могут быть прочитаны; в противном случае — false.true if data is available on the stream to be read; otherwise, false.

Исключения

Объект NetworkStream закрыт.The NetworkStream is closed.

Основной объект Socket закрыт.The underlying Socket is closed.

Используйте свойство ErrorCode для получения конкретного кода ошибки и обратитесь за подробным описанием ошибки к документации Коды ошибок API для сокетов Windows версии 2.Use the ErrorCode property to obtain the specific error code and refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Примеры

В следующем примере кода считывается из, NetworkStream Если доступны данные.The following code example reads from the NetworkStream as long as data is available.

// Examples for CanRead, Read, and DataAvailable.
// 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." );
}
// Examples for CanRead, Read, and DataAvailable.

// 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.");
}

' Examples for CanRead, Read, and DataAvailable.
' 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

Комментарии

Используйте DataAvailable свойство, чтобы определить, готовы ли данные к чтению.Use the DataAvailable property to determine if data is ready to be read. Если DataAvailable имеет значение true , вызов метода Read возвращает значение немедленно.If DataAvailable is true, a call to Read returns immediately. Если удаленный узел завершает работу или закрывает соединение, DataAvailable может вызвать исключение SocketException .If the remote host shuts down or closes the connection, DataAvailable may throw a SocketException.

Применяется к

См. также раздел