Socket.Available 属性 
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取已经从网络接收且可供读取的数据量。
public:
 property int Available { int get(); };public int Available { get; }member this.Available : intPublic ReadOnly Property Available As Integer属性值
从网络接收的、可供读取的数据的字节数。
例外
尝试访问套接字时出错。
示例
下面的代码示例将调用 IOControl 的结果与 FIONREAD 和 Available 属性进行比较。
 // FIONREAD is also available as the "Available" property.
public const int FIONREAD   = 0x4004667F;
static void DisplayPendingByteCount(Socket s)
 {
     byte[] outValue = BitConverter.GetBytes(0);
     // Check how many bytes have been received.
     s.IOControl(FIONREAD, null, outValue);
     uint bytesAvailable = BitConverter.ToUInt32(outValue, 0);
     Console.WriteLine("server has {0} bytes pending. Available property says {1}.",
         bytesAvailable, s.Available);
     return;
 }
注解
如果使用非阻止 SocketAvailable ,是在调用 Receive之前确定数据是否排队读取的好方法。 可用数据是在网络缓冲区中排队以供读取的数据总量。 如果网络缓冲区中没有排队的数据, Available 则 返回 0。
如果远程主机关闭或关闭连接, Available 可能会引发 SocketException。 如果收到 , SocketException请使用 SocketException.ErrorCode 属性获取特定的错误代码。 获取此代码后,请参阅 Windows 套接字版本 2 API 错误代码 文档,获取错误的详细说明。
备注
当你在应用程序中启用网络跟踪后,此成员将输出跟踪信息。 有关详细信息,请参阅 .NET Framework 中的网络跟踪。