NetworkStream.ReadAsync Метод

Определение

Перегрузки

Имя Описание
ReadAsync(Memory<Byte>, CancellationToken)

Считывает данные из и NetworkStream сохраняет его в диапазоне памяти байтов в виде асинхронной операции.

ReadAsync(Byte[], Int32, Int32, CancellationToken)

Считывает данные из NetworkStream и сохраняет его в указанном диапазоне массива байтов в виде асинхронной операции.

ReadAsync(Memory<Byte>, CancellationToken)

Исходный код:
NetworkStream.cs
Исходный код:
NetworkStream.cs
Исходный код:
NetworkStream.cs
Исходный код:
NetworkStream.cs
Исходный код:
NetworkStream.cs

Считывает данные из и NetworkStream сохраняет его в диапазоне памяти байтов в виде асинхронной операции.

public override System.Threading.Tasks.ValueTask<int> ReadAsync(Memory<byte> buffer, System.Threading.CancellationToken cancellationToken = default);
override this.ReadAsync : Memory<byte> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Overrides Function ReadAsync (buffer As Memory(Of Byte), Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)

Параметры

buffer
Memory<Byte>

Буфер для записи данных в.

cancellationToken
CancellationToken

Маркер для отслеживания запросов на отмену.

Возвращаемое значение

Объект, ValueTask<TResult> представляющий асинхронную операцию чтения. Значение его Result свойства содержит общее число байтов, считываемых buffer между нулем (0) и числом запрошенных байтов. Значение результата равно нулю (0) только в том случае, если запрашивались ноль байтов или если больше байтов не доступно, так как сокет однорангового узла выполнил корректное завершение работы. Если запрашиваются ноль байтов, операции чтения могут завершиться немедленно или не завершиться до тех пор, пока не будет доступен хотя бы один байт (но без использования данных).

Исключения

Не NetworkStream поддерживает чтение.

При доступе к сокету произошла ошибка.

–или–

Сбой чтения из сети.

Маркер отмены был отменен. Это исключение хранится в возвращаемой задаче.

Комментарии

Этот метод считывает столько данных, сколько доступно buffer в и возвращает количество байтов, успешно считываемых.

Note

Проверьте, доступен ли NetworkStream для CanRead чтения объект, вызвав свойство. Если вы пытаетесь прочитать из NetworkStream нечитаемого объекта, вы получите InvalidOperationException.

Note

Если вы получаете IOExceptionсвойство, проверьте InnerException , было ли оно вызвано SocketException. В этом случае используйте свойство ErrorCode для получения определенного кода ошибки и ознакомьтесь с кодом ошибки Windows Сокеты версии 2 API для подробного описания ошибки.

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

ReadAsync(Byte[], Int32, Int32, CancellationToken)

Исходный код:
NetworkStream.cs
Исходный код:
NetworkStream.cs
Исходный код:
NetworkStream.cs
Исходный код:
NetworkStream.cs
Исходный код:
NetworkStream.cs

Считывает данные из NetworkStream и сохраняет его в указанном диапазоне массива байтов в виде асинхронной операции.

public:
 override System::Threading::Tasks::Task<int> ^ ReadAsync(cli::array <System::Byte> ^ buffer, int offset, int count, System::Threading::CancellationToken cancellationToken);
public:
 override System::Threading::Tasks::Task<int> ^ ReadAsync(cli::array <System::Byte> ^ buffer, int offset, int size, System::Threading::CancellationToken cancellationToken);
public override System.Threading.Tasks.Task<int> ReadAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken);
public override System.Threading.Tasks.Task<int> ReadAsync(byte[] buffer, int offset, int size, System.Threading.CancellationToken cancellationToken);
override this.ReadAsync : byte[] * int * int * System.Threading.CancellationToken -> System.Threading.Tasks.Task<int>
override this.ReadAsync : byte[] * int * int * System.Threading.CancellationToken -> System.Threading.Tasks.Task<int>
Public Overrides Function ReadAsync (buffer As Byte(), offset As Integer, count As Integer, cancellationToken As CancellationToken) As Task(Of Integer)
Public Overrides Function ReadAsync (buffer As Byte(), offset As Integer, size As Integer, cancellationToken As CancellationToken) As Task(Of Integer)

Параметры

buffer
Byte[]

Буфер для записи данных в.

offset
Int32

buffer Расположение, в котором начинается хранение данных.

countsize
Int32

Число байтов для чтения из .NetworkStream

cancellationToken
CancellationToken

Маркер для отслеживания запросов на отмену.

Возвращаемое значение

Задача, представляющая асинхронную операцию чтения. Значение его Result свойства содержит общее число байтов, считываемых buffer между нулем (0) и числом запрошенных байтов. Значение результата равно нулю (0) только в том случае, если запрашивались ноль байтов или если больше байтов не доступно, так как сокет однорангового узла выполнил корректное завершение работы. Если запрашиваются ноль байтов, операции чтения могут завершиться немедленно или не завершиться до тех пор, пока не будет доступен хотя бы один байт (но без использования данных).

Исключения

Не NetworkStream поддерживает чтение.

При доступе к сокету произошла ошибка.

–или–

Сбой чтения из сети.

Маркер отмены был отменен. Это исключение хранится в возвращаемой задаче.

Комментарии

Этот метод считывает данные buffer и возвращает количество байтов, успешно считываемых. Операция ReadAsync считывает столько данных, сколько доступно, до количества байтов, указанных параметром count .

Note

Проверьте, доступен ли NetworkStream для CanRead чтения объект, вызвав свойство. Если вы пытаетесь прочитать из NetworkStream нечитаемого объекта, вы получите InvalidOperationException.

Note

Если вы получаете IOExceptionсвойство, проверьте InnerException , было ли оно вызвано SocketException. В этом случае используйте свойство ErrorCode для получения определенного кода ошибки и ознакомьтесь с кодом ошибки Windows Сокеты версии 2 API для подробного описания ошибки.

Этот метод сохраняет в задаче все исключения без использования, которые может вызывать синхронный аналог метода. Если исключение хранится в возвращаемой задаче, это исключение будет создано при ожидании задачи. Исключения использования, такие как ArgumentException, по-прежнему выбрасываются синхронно. Сведения о сохраненных исключениях см. в исключениях, создаваемых Read(Byte[], Int32, Int32).

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