このドキュメントはアーカイブされており、メンテナンスされていません。

NetworkStream.DataAvailable プロパティ

NetworkStream に読み取り対象のデータがあるかどうかを示す値を取得します。

名前空間: System.Net.Sockets
アセンブリ: System (system.dll 内)

public virtual bool DataAvailable { get; }
/** @property */
public boolean get_DataAvailable ()

public function get DataAvailable () : boolean

プロパティ値

ストリームからデータを読み取ることができる場合は true。それ以外の場合は false

例外の種類条件

ObjectDisposedException

NetworkStream が閉じています。

IOException

基になっている Socket が閉じています。

SocketException

SocketException.ErrorCode プロパティを使用して特定のエラー コードを取得してください。エラーの詳細については、MSDN で Windows Socket Version 2 API のエラー コードのドキュメントを参照してください。

DataAvailable プロパティを使用して、データを読み取ることができる状態かどうかを確認します。DataAvailabletrue の場合、Read メソッドの実行はすぐに終了します。リモート ホストがシャットダウンするか接続を閉じると、DataAvailableSocketException をスローする場合があります。

データが使用可能な場合に NetworkStream から読み取りを実行するコード例を次に示します。

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

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

開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。

.NET Framework

サポート対象 : 2.0、1.1、1.0

.NET Compact Framework

サポート対象 : 2.0、1.0
表示: