在以下情况下;
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
(从网络接收到的可读取数据的字节数)