NetworkStream.ReadAsync Metodo

Definizione

Overload

Nome Descrizione
ReadAsync(Memory<Byte>, CancellationToken)

Legge i dati dall'oggetto NetworkStream e li archivia in un intervallo di memoria di byte come operazione asincrona.

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

Legge i dati dall'oggetto NetworkStream e li archivia in un intervallo specificato di una matrice di byte come operazione asincrona.

ReadAsync(Memory<Byte>, CancellationToken)

Legge i dati dall'oggetto NetworkStream e li archivia in un intervallo di memoria di byte come operazione asincrona.

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)

Parametri

buffer
Memory<Byte>

Buffer in cui scrivere i dati.

cancellationToken
CancellationToken

Token da monitorare per le richieste di annullamento.

Valori restituiti

Oggetto ValueTask<TResult> che rappresenta l'operazione di lettura asincrona. Il valore della proprietà Result contiene il numero totale di byte letti buffer tra zero (0) e il numero di byte richiesti. Il valore del risultato è zero (0) solo se sono stati richiesti zero byte o se non sono disponibili più byte perché il socket peer ha eseguito un arresto normale. Se vengono richiesti zero byte, le operazioni di lettura possono essere completate immediatamente o potrebbero non essere completate fino a quando non è disponibile almeno un byte (ma senza utilizzare alcun dato).

Eccezioni

Non NetworkStream supporta la lettura.

Si è verificato un errore durante l'accesso al socket.

oppure

Si è verificato un errore durante la lettura dalla rete.

L'oggetto NetworkStream è chiuso.

Il token di annullamento è stato annullato. Questa eccezione viene archiviata nell'attività restituita.

Commenti

Questo metodo legge la quantità di dati disponibile in buffer e restituisce il numero di byte letti correttamente.

Note

Controllare se è NetworkStream leggibile chiamando la CanRead proprietà . Se si tenta di leggere da un oggetto NetworkStream che non è leggibile, si otterrà un oggetto InvalidOperationException.

Note

Se si riceve un oggetto IOException, controllare la InnerException proprietà per determinare se è stata causata da un oggetto SocketException. In tal caso, usare la proprietà ErrorCode per ottenere il codice di errore specifico e fare riferimento al codice di errore api Windows Sockets versione 2 documentazione per una descrizione dettagliata dell'errore.

Si applica a

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

Legge i dati dall'oggetto NetworkStream e li archivia in un intervallo specificato di una matrice di byte come operazione asincrona.

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)

Parametri

buffer
Byte[]

Buffer in cui scrivere i dati.

offset
Int32

Posizione in buffer in cui iniziare a archiviare i dati.

countsize
Int32

Numero di byte da leggere da NetworkStream.

cancellationToken
CancellationToken

Token da monitorare per le richieste di annullamento.

Valori restituiti

Attività che rappresenta l'operazione di lettura asincrona. Il valore della proprietà Result contiene il numero totale di byte letti buffer tra zero (0) e il numero di byte richiesti. Il valore del risultato è zero (0) solo se sono stati richiesti zero byte o se non sono disponibili più byte perché il socket peer ha eseguito un arresto normale. Se vengono richiesti zero byte, le operazioni di lettura possono essere completate immediatamente o potrebbero non essere completate fino a quando non è disponibile almeno un byte (ma senza utilizzare alcun dato).

Eccezioni

Non NetworkStream supporta la lettura.

Si è verificato un errore durante l'accesso al socket.

oppure

Si è verificato un errore durante la lettura dalla rete.

L'oggetto NetworkStream è chiuso.

Il token di annullamento è stato annullato. Questa eccezione viene archiviata nell'attività restituita.

Commenti

Questo metodo legge i dati in buffer e restituisce il numero di byte letti correttamente. L'operazione ReadAsync legge la quantità di dati disponibile, fino al numero di byte specificato dal count parametro .

Note

Controllare se è NetworkStream leggibile chiamando la CanRead proprietà . Se si tenta di leggere da un oggetto NetworkStream che non è leggibile, si otterrà un oggetto InvalidOperationException.

Note

Se si riceve un oggetto IOException, controllare la InnerException proprietà per determinare se è stata causata da un oggetto SocketException. In tal caso, usare la proprietà ErrorCode per ottenere il codice di errore specifico e fare riferimento al codice di errore api Windows Sockets versione 2 documentazione per una descrizione dettagliata dell'errore.

Questo metodo archivia nell'attività che restituisce tutte le eccezioni non di utilizzo che la controparte sincrona del metodo può generare. Se un'eccezione viene archiviata nell'attività restituita, tale eccezione verrà generata quando l'attività è attesa. Le eccezioni di utilizzo, ad esempio ArgumentException, vengono comunque generate in modo sincrono. Per le eccezioni archiviate, vedere le eccezioni generate da Read(Byte[], Int32, Int32).

Si applica a