Поделиться через


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.

Применяется к

См. также раздел