Condividi tramite


Socket.ReceiveAsync Metodo

Definizione

Overload

ReceiveAsync(ArraySegment<Byte>)

Riceve i dati da un socket connesso.

ReceiveAsync(IList<ArraySegment<Byte>>)

Riceve i dati da un socket connesso.

ReceiveAsync(SocketAsyncEventArgs)

Avvia una richiesta asincrona per ricevere dati da un oggetto Socket connesso.

ReceiveAsync(ArraySegment<Byte>, SocketFlags)

Riceve i dati da un socket connesso.

ReceiveAsync(IList<ArraySegment<Byte>>, SocketFlags)

Riceve i dati da un socket connesso.

ReceiveAsync(Memory<Byte>, CancellationToken)

Riceve i dati da un socket connesso.

ReceiveAsync(Memory<Byte>, SocketFlags, CancellationToken)

Riceve i dati da un socket connesso.

ReceiveAsync(ArraySegment<Byte>)

Origine:
Socket.Tasks.cs
Origine:
Socket.Tasks.cs
Origine:
Socket.Tasks.cs

Riceve i dati da un socket connesso.

public:
 System::Threading::Tasks::Task<int> ^ ReceiveAsync(ArraySegment<System::Byte> buffer);
public System.Threading.Tasks.Task<int> ReceiveAsync (ArraySegment<byte> buffer);
member this.ReceiveAsync : ArraySegment<byte> -> System.Threading.Tasks.Task<int>
Public Function ReceiveAsync (buffer As ArraySegment(Of Byte)) As Task(Of Integer)

Parametri

buffer
ArraySegment<Byte>

Buffer per i dati ricevuti.

Restituisce

Attività asincrona che viene completata con il numero di byte ricevuti.

Eccezioni

L'oggetto Socket è stato chiuso.

Si è verificato un errore durante il tentativo di accesso al socket.

Si applica a

ReceiveAsync(IList<ArraySegment<Byte>>)

Origine:
Socket.Tasks.cs
Origine:
Socket.Tasks.cs
Origine:
Socket.Tasks.cs

Riceve i dati da un socket connesso.

public:
 System::Threading::Tasks::Task<int> ^ ReceiveAsync(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers);
public System.Threading.Tasks.Task<int> ReceiveAsync (System.Collections.Generic.IList<ArraySegment<byte>> buffers);
member this.ReceiveAsync : System.Collections.Generic.IList<ArraySegment<byte>> -> System.Threading.Tasks.Task<int>
Public Function ReceiveAsync (buffers As IList(Of ArraySegment(Of Byte))) As Task(Of Integer)

Parametri

buffers
IList<ArraySegment<Byte>>

Elenco dei buffer per i dati ricevuti.

Restituisce

Attività asincrona che viene completata con il numero di byte ricevuti.

Eccezioni

Il parametro buffers è null.

L'oggetto Socket è stato chiuso.

Si è verificato un errore durante il tentativo di accesso al socket.

Commenti

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 Receive(IList<ArraySegment<Byte>>).

Si applica a

ReceiveAsync(SocketAsyncEventArgs)

Origine:
Socket.cs
Origine:
Socket.cs
Origine:
Socket.cs

Avvia una richiesta asincrona per ricevere dati da un oggetto Socket connesso.

public:
 bool ReceiveAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool ReceiveAsync (System.Net.Sockets.SocketAsyncEventArgs e);
member this.ReceiveAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function ReceiveAsync (e As SocketAsyncEventArgs) As Boolean

Parametri

e
SocketAsyncEventArgs

Oggetto SocketAsyncEventArgs da utilizzare per questa operazione socket asincrona.

Restituisce

true se l'operazione di I/O è in sospeso. Al completamento dell'operazione verrà generato l'evento Completed sul parametro e.

false se l'operazione di I/O è stata completata in modo sincrono. In questo caso, l'evento Completed sul parametro e non verrà generato e l'oggetto e passato come parametro potrebbe essere esaminato immediatamente dopo che la chiamata al metodo è stata restituita per recuperare il risultato dell'operazione.

Eccezioni

Un argomento non è valido. Le proprietà Buffer o BufferList sul parametro e devono fare riferimento a buffer validi. È possibile impostare una di queste due proprietà, ma non entrambe contemporaneamente.

Era già in corso un'operazione di socket che utilizza l'oggetto SocketAsyncEventArgs specificato nel parametro e.

L'oggetto Socket è stato chiuso.

Si è verificato un errore durante il tentativo di accesso al socket.

Commenti

Il ReceiveAsync metodo viene usato nei socket connessi o nei socket senza connessione associati e viene usato per leggere i dati in ingresso. L'indirizzo locale del socket deve essere noto.

Per i socket senza connessione associati, questa funzione limita gli indirizzi da cui vengono accettati i messaggi ricevuti. La funzione restituisce solo messaggi dall'indirizzo remoto specificato nella connessione. I messaggi provenienti da altri indirizzi vengono eliminati in modo automatico.

La SocketAsyncEventArgs.SocketFlags proprietà nel e parametro fornisce al provider di servizi Window Sockets informazioni aggiuntive sulla richiesta di lettura. Per altre informazioni su come usare questo parametro, vedere System.Net.Sockets.SocketFlags.

Per chiamare correttamente questo metodo, sono necessarie le proprietà e gli eventi seguenti nell'oggetto System.Net.Sockets.SocketAsyncEventArgs :

Il chiamante può impostare la SocketAsyncEventArgs.UserToken proprietà su qualsiasi oggetto stato utente desiderato prima di chiamare il ReceiveAsync metodo, in modo che le informazioni saranno recuperabili nel metodo di callback. Se il callback richiede più informazioni di un singolo oggetto, è possibile creare una classe piccola per contenere le altre informazioni sullo stato necessarie come membri.

Per i socket in stile flusso di byte, i dati in ingresso vengono inseriti nel buffer finché il buffer non viene riempito, la connessione viene chiusa o i dati memorizzati nel buffer interno vengono esauriti.

Per i socket orientati ai messaggi, un messaggio in ingresso viene inserito nel buffer fino alla dimensione totale del buffer associato al e parametro. Se il messaggio è maggiore del buffer, il buffer viene riempito con la prima parte del messaggio.

Per i socket orientati alla connessione, il ReceiveAsync metodo può indicare la terminazione grazia del circuito virtuale in uno dei due modi che dipendono dal fatto che il socket sia flusso di byte o orientato al messaggio. Per i flussi di byte, zero byte che è stato letto indica la chiusura grazia e che non verranno mai letti più byte. Per i socket orientati ai messaggi, dove un messaggio di byte zero è spesso consentito, viene usato un SocketException oggetto con il set sul codice di errore WSAEDISCON nativo (10101) per indicare la SocketAsyncEventArgs.SocketError chiusura grazia. In qualsiasi caso, un SocketException oggetto con l'oggetto SocketAsyncEventArgs.SocketError impostato sul codice di errore Winsock WSAECONNRESET (10054) indica che si è verificata una chiusura interrotta.

Vedi anche

Si applica a

ReceiveAsync(ArraySegment<Byte>, SocketFlags)

Origine:
Socket.Tasks.cs
Origine:
Socket.Tasks.cs
Origine:
Socket.Tasks.cs

Riceve i dati da un socket connesso.

public:
 System::Threading::Tasks::Task<int> ^ ReceiveAsync(ArraySegment<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags);
public System.Threading.Tasks.Task<int> ReceiveAsync (ArraySegment<byte> buffer, System.Net.Sockets.SocketFlags socketFlags);
member this.ReceiveAsync : ArraySegment<byte> * System.Net.Sockets.SocketFlags -> System.Threading.Tasks.Task<int>
Public Function ReceiveAsync (buffer As ArraySegment(Of Byte), socketFlags As SocketFlags) As Task(Of Integer)

Parametri

buffer
ArraySegment<Byte>

Buffer per i dati ricevuti.

socketFlags
SocketFlags

Combinazione bit per bit dei valori SocketFlags che verranno usati durante la ricezione dei dati.

Restituisce

Attività asincrona che viene completata con il numero di byte ricevuti.

Eccezioni

L'oggetto Socket è stato chiuso.

Si è verificato un errore durante il tentativo di accesso al socket.

Si applica a

ReceiveAsync(IList<ArraySegment<Byte>>, SocketFlags)

Origine:
Socket.Tasks.cs
Origine:
Socket.Tasks.cs
Origine:
Socket.Tasks.cs

Riceve i dati da un socket connesso.

public:
 System::Threading::Tasks::Task<int> ^ ReceiveAsync(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags);
public System.Threading.Tasks.Task<int> ReceiveAsync (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags);
member this.ReceiveAsync : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags -> System.Threading.Tasks.Task<int>
Public Function ReceiveAsync (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags) As Task(Of Integer)

Parametri

buffers
IList<ArraySegment<Byte>>

Elenco dei buffer per i dati ricevuti.

socketFlags
SocketFlags

Combinazione bit per bit dei valori SocketFlags che verranno usati durante la ricezione dei dati.

Restituisce

Attività asincrona che viene completata con il numero di byte ricevuti.

Eccezioni

Il parametro buffers è null.

L'oggetto Socket è stato chiuso.

Si è verificato un errore durante il tentativo di accesso al socket.

Commenti

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 Receive(IList<ArraySegment<Byte>>, SocketFlags).

Si applica a

ReceiveAsync(Memory<Byte>, CancellationToken)

Origine:
Socket.Tasks.cs
Origine:
Socket.Tasks.cs
Origine:
Socket.Tasks.cs

Riceve i dati da un socket connesso.

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

Parametri

buffer
Memory<Byte>

Buffer per i dati ricevuti.

cancellationToken
CancellationToken

Token di annullamento che può essere usato per annullare l'operazione asincrona.

Restituisce

Attività asincrona che viene completata con il numero di byte ricevuti.

Eccezioni

L'oggetto Socket è stato chiuso.

Si è verificato un errore durante il tentativo di accesso al socket.

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

Si applica a

ReceiveAsync(Memory<Byte>, SocketFlags, CancellationToken)

Origine:
Socket.Tasks.cs
Origine:
Socket.Tasks.cs
Origine:
Socket.Tasks.cs

Riceve i dati da un socket connesso.

public System.Threading.Tasks.ValueTask<int> ReceiveAsync (Memory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveAsync : Memory<byte> * System.Net.Sockets.SocketFlags * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function ReceiveAsync (buffer As Memory(Of Byte), socketFlags As SocketFlags, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)

Parametri

buffer
Memory<Byte>

Buffer per i dati ricevuti.

socketFlags
SocketFlags

Combinazione bit per bit dei valori SocketFlags che verranno usati durante la ricezione dei dati.

cancellationToken
CancellationToken

Token di annullamento che può essere usato per annullare l'operazione asincrona.

Restituisce

Attività asincrona che viene completata con il numero di byte ricevuti.

Eccezioni

L'oggetto Socket è stato chiuso.

Si è verificato un errore durante il tentativo di accesso al socket.

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

Si applica a