NetworkStream.DataAvailable プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
NetworkStream に読み取り対象のデータがあるかどうかを示す値を取得します。
public:
virtual property bool DataAvailable { bool get(); };
public virtual bool DataAvailable { get; }
member this.DataAvailable : bool
Public Overridable ReadOnly Property DataAvailable As Boolean
プロパティ値
ストリームからデータを読み取ることができる場合は true
。それ以外の場合は false
。
例外
NetworkStream が閉じています。
基になっている Socket が閉じています。
ErrorCode プロパティを使用して特定のエラー コードを取得してください。エラーの詳細については、Windows Socket Version 2 API のエラー コードに関するドキュメントを参照してください。
例
次のコード例では、データが使用可能な限り NetworkStream 読み取ります。
// 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 使用して、データを読み取る準備ができているかどうかを判断します。 の場合 DataAvailable は true
、すぐに返す Read 呼び出しです。 リモート ホストが接続をシャットダウンまたは閉じる場合は、 DataAvailable SocketException.