在以下场景中;
System.Net.Sockets.TcpClient TC = SomeHowObtained;
System.Net.Sockets.NetworkStream NS = TC.GetStream();
使用NS.DataAvailable
和检查TC.Available > 0
?
答案 0 :(得分:6)
在这种情况下没有,没有区别。 NS.DataAvailable
内部Socket.Available != 0
返回true。由于TC.Available
只返回Socket.Available
并且您正在检查是否大于0,您基本上都在做同样的事情。
答案 1 :(得分:3)
来自MSDN:
获取一个值,该值指示数据是否可用 要读取的NetworkStream 。
获取从网络收到的数据,并且是 可以阅读。
NetworkStream.DataAvailable
返回boolean
(如果要读取的流上有数据,则为true),TcpClient.Available
返回Int32
(从网络接收的数据的字节数)并且可以阅读)