NetworkStream.ReadAsync Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Sobrecargas
| Nombre | Description |
|---|---|
| ReadAsync(Memory<Byte>, CancellationToken) |
Lee los datos de NetworkStream y los almacena en un intervalo de memoria de bytes como una operación asincrónica. |
| ReadAsync(Byte[], Int32, Int32, CancellationToken) |
Lee los datos de NetworkStream y los almacena en un intervalo especificado de una matriz de bytes como una operación asincrónica. |
ReadAsync(Memory<Byte>, CancellationToken)
Lee los datos de NetworkStream y los almacena en un intervalo de memoria de bytes como una operación asincrónica.
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)
Parámetros
- cancellationToken
- CancellationToken
Token que se va a supervisar para las solicitudes de cancelación.
Devoluciones
ValueTask<TResult> que representa la operación de lectura asincrónica. El valor de su Result propiedad contiene el número total de bytes leídos entre buffer cero (0) y el número de bytes solicitados. El valor de resultado es cero (0) solo si se solicitó cero bytes o si no hay más bytes disponibles porque el socket del mismo nivel realizó un apagado correcto. Si se solicitan cero bytes, es posible que las operaciones de lectura se completen inmediatamente o no se completen hasta que haya al menos un byte disponible (pero sin consumir ningún dato).
Excepciones
NetworkStream no admite la lectura.
NetworkStream Está cerrado.
Se canceló el token de cancelación. Esta excepción se almacena en la tarea devuelta.
Comentarios
Este método lee tantos datos como están disponibles en buffer y devuelve el número de bytes leídos correctamente.
Note
Compruebe si se NetworkStream puede leer mediante una llamada a la CanRead propiedad . Si intenta leer desde un NetworkStream objeto que no es legible, obtendrá un InvalidOperationException.
Note
Si recibe un IOException, compruebe la InnerException propiedad para determinar si fue causada por .SocketException Si es así, use la propiedad ErrorCode para obtener el código de error específico y consulte el código de error de Windows Código de error de la API de sockets versión 2 para obtener una descripción detallada del error.
Se aplica a
ReadAsync(Byte[], Int32, Int32, CancellationToken)
Lee los datos de NetworkStream y los almacena en un intervalo especificado de una matriz de bytes como una operación asincrónica.
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 size, System.Threading.CancellationToken cancellationToken);
abstract member 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>
override this.ReadAsync : byte[] * int * int * System.Threading.CancellationToken -> System.Threading.Tasks.Task<int>
Public Overrides Function ReadAsync (buffer As Byte(), offset As Integer, size As Integer, cancellationToken As CancellationToken) As Task(Of Integer)
Parámetros
- buffer
- Byte[]
Búfer en el que se van a escribir los datos.
- offset
- Int32
Ubicación en para buffer empezar a almacenar los datos.
- countsize
- Int32
Número de bytes que se van a leer de .NetworkStream
- cancellationToken
- CancellationToken
Token que se va a supervisar para las solicitudes de cancelación.
Devoluciones
Tarea que representa la operación de lectura asincrónica. El valor de su Result propiedad contiene el número total de bytes leídos entre buffer cero (0) y el número de bytes solicitados. El valor de resultado es cero (0) solo si se solicitó cero bytes o si no hay más bytes disponibles porque el socket del mismo nivel realizó un apagado correcto. Si se solicitan cero bytes, es posible que las operaciones de lectura se completen inmediatamente o no se completen hasta que haya al menos un byte disponible (pero sin consumir ningún dato).
Excepciones
NetworkStream no admite la lectura.
NetworkStream Está cerrado.
Se canceló el token de cancelación. Esta excepción se almacena en la tarea devuelta.
Comentarios
Este método lee los datos en buffer y devuelve el número de bytes leídos correctamente. La ReadAsync operación lee tantos datos como estén disponibles, hasta el número de bytes especificados por el count parámetro .
Note
Compruebe si se NetworkStream puede leer mediante una llamada a la CanRead propiedad . Si intenta leer desde un NetworkStream objeto que no es legible, obtendrá un InvalidOperationException.
Note
Si recibe un IOException, compruebe la InnerException propiedad para determinar si fue causada por .SocketException Si es así, use la propiedad ErrorCode para obtener el código de error específico y consulte el código de error de Windows Código de error de la API de sockets versión 2 para obtener una descripción detallada del error.
Este método almacena en la tarea que devuelve todas las excepciones de no uso que puede producir el homólogo sincrónico del método. Si se almacena una excepción en la tarea devuelta, se producirá esa excepción cuando se espere la tarea. Las excepciones de uso, como ArgumentException, todavía se producen sincrónicamente. Para las excepciones almacenadas, consulte las excepciones producidas por Read(Byte[], Int32, Int32).