次のシナリオでは。
System.Net.Sockets.TcpClient TC = SomeHowObtained;
System.Net.Sockets.NetworkStream NS = TC.GetStream();
NS.DataAvailable
使用とチェックに違いはありますTC.Available > 0
か?
次のシナリオでは。
System.Net.Sockets.TcpClient TC = SomeHowObtained;
System.Net.Sockets.NetworkStream NS = TC.GetStream();
NS.DataAvailable
使用とチェックに違いはありますTC.Available > 0
か?
この場合、違いはありません。の場合、内部的NS.DataAvailable
に true を返しますSocket.Available != 0
。TC.Available
戻るだけSocket.Available
で、それが0より大きいかどうかを確認しているので、基本的に同じことをしています。
MSDN から:
NetworkStream で読み取り可能なデータがあるかどうかを示す値を取得します。
ネットワークから受信して読み取り可能なデータの量を取得します。
NetworkStream.DataAvailable
戻り値boolean
(ストリーム上で読み取り可能なデータがある場合は true)、TcpClient.Available
戻り値Int32
(ネットワークから受信され、読み取り可能なデータのバイト数)