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