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 != 0。因为TC.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 回答