Socket.Available Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Получает объем данных, полученных из сети и доступных для чтения.
public:
property int Available { int get(); };
public int Available { get; }
member this.Available : int
Public ReadOnly Property Available As Integer
Значение свойства
Количество байтов данных, полученных из сети и доступных для чтения.
Исключения
Произошла ошибка при попытке доступа к сокету.
Он Socket был закрыт.
Примеры
В следующем примере кода сравниваются результаты вызова 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;
}
Комментарии
Если вы используете неблокировку, Available рекомендуется определить, помещаются ли данные в очередь Socketдля чтения перед вызовомReceive. Доступные данные — это общий объем данных в очереди в сетевом буфере для чтения. Если в сетевом буфере нет данных, Available возвращается значение 0.
Если удаленный узел завершает работу или закрывает подключение, Available может вызвать исключение SocketException. При получении SocketExceptionсвойства используйте SocketException.ErrorCode свойство для получения определенного кода ошибки. Получив этот код, ознакомьтесь с документацией по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки.
Замечание
Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе "Трассировка сети" в .NET Framework.