NetworkStream.DataAvailable与TcpClient.Available

时间:2012-12-15 11:06:01

标签: c# tcpclient networkstream

在以下场景中;

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

使用NS.DataAvailable和检查TC.Available > 0

之间有什么区别吗?

2 个答案:

答案 0 :(得分:6)

在这种情况下没有,没有区别。 NS.DataAvailable内部Socket.Available != 0返回true。由于TC.Available只返回Socket.Available并且您正在检查是否大于0,您基本上都在做同样的事情。

答案 1 :(得分:3)

来自MSDN:

NetworkStream.DataAvailable

  

获取一个值,该值指示数据是否可用   要读取的NetworkStream

TcpClient.Available

  

获取从网络收到的数据,并且是   可以阅读。

NetworkStream.DataAvailable返回boolean(如果要读取的流上有数据,则为true),TcpClient.Available返回Int32(从网络接收的数据的字节数)并且可以阅读)