7

次のシナリオでは。

System.Net.Sockets.TcpClient TC = SomeHowObtained;
System.Net.Sockets.NetworkStream NS = TC.GetStream();

NS.DataAvailable使用とチェックに違いはありますTC.Available > 0か?

4

2 に答える 2

7

この場合、違いはありません。の場合、内部的NS.DataAvailableに true を返しますSocket.Available != 0TC.Available戻るだけSocket.Availableで、それが0より大きいかどうかを確認しているので、基本的に同じことをしています。

于 2012-12-15T11:25:07.937 に答える
3

MSDN から:

NetworkStream.DataAvailable

NetworkStream で読み取り可能なデータがあるかどうかを示す値を取得します。

TcpClient.Available

ネットワークから受信して読み取り可能なデータの量を取得します。

NetworkStream.DataAvailable戻り値boolean(ストリーム上で読み取り可能なデータがある場合は true)、TcpClient.Available戻り値Int32(ネットワークから受信され、読み取り可能なデータのバイト数)

于 2012-12-15T11:24:27.037 に答える