Socket.ReceiveAsync Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Overload
| Nome | Descrizione |
|---|---|
| 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 connesso Socket . |
| 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
- 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à che rappresenta l'operazione di ricezione 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 ricezione possono essere completate immediatamente o potrebbero non essere completate fino a quando non è disponibile almeno un byte (ma senza utilizzare alcun dato).
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
- 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 di buffer per i dati ricevuti.
Restituisce
Attività che rappresenta l'operazione di ricezione asincrona. Il valore della proprietà Result contiene il numero totale di byte letti nei buffer compresi 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 ricezione possono essere completate immediatamente o potrebbero non essere completate fino a quando non è disponibile almeno un byte (ma senza utilizzare alcun dato).
Eccezioni
Il buffers parametro è 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
- Origine:
- Socket.cs
- Origine:
- Socket.cs
Avvia una richiesta asincrona per ricevere dati da un oggetto connesso Socket .
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
Oggetto SocketAsyncEventArgs da utilizzare per questa operazione socket asincrona.
Restituisce
true se l'operazione di I/O è in sospeso. L'evento Completed sul e parametro verrà generato al termine dell'operazione.
false se l'operazione di I/O è stata completata in modo sincrono. In questo caso, l'evento Completed sul e parametro non verrà generato e l'oggetto e passato come parametro può essere esaminato immediatamente dopo il ritorno della chiamata al metodo per recuperare il risultato dell'operazione.
Eccezioni
Argomento non valido. Le Buffer proprietà o BufferList nel e parametro devono fare riferimento a buffer validi. Una o l'altra di queste proprietà possono essere impostate, ma non entrambe contemporaneamente.
Un'operazione socket era già in corso usando l'oggetto SocketAsyncEventArgs specificato nel e parametro .
L'oggetto Socket è stato chiuso.
Si è verificato un errore durante il tentativo di accesso al socket.
Commenti
Il ReceiveAsync metodo viene usato su socket connessi o 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 automaticamente.
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 necessari gli eventi e le proprietà seguenti sull'oggetto System.Net.Sockets.SocketAsyncEventArgs :
SocketAsyncEventArgs.Buffer oppure SocketAsyncEventArgs.BufferList
SocketAsyncEventArgs.Count se SocketAsyncEventArgs.Buffer è impostato
SocketAsyncEventArgs.Offset se SocketAsyncEventArgs.Buffer è impostato
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 di piccole dimensioni 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 fino a quando il buffer non viene riempito, la connessione viene chiusa o i dati memorizzati internamente nel buffer vengono esauriti.
Per i socket orientati ai messaggi, un messaggio in arrivo 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 normale del circuito virtuale in uno dei due modi che dipendono dal fatto che il socket sia un flusso di byte o orientato ai messaggi. Per i flussi di byte, zero byte letti indicano una chiusura normale e che non verranno mai letti altri byte. Per i socket orientati ai messaggi, in cui un messaggio a byte zero è spesso consentito, viene usato un SocketException oggetto con impostato SocketAsyncEventArgs.SocketError sul codice di errore WSAEDISCON winsock nativo (10101) per indicare la chiusura normale. In ogni caso, un SocketException oggetto con impostato SocketAsyncEventArgs.SocketError sul codice di errore WSAECONNRESET nativo (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
- 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à che rappresenta l'operazione di ricezione 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 ricezione possono essere completate immediatamente o potrebbero non essere completate fino a quando non è disponibile almeno un byte (ma senza utilizzare alcun dato).
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
- 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 di buffer per i dati ricevuti.
- socketFlags
- SocketFlags
Combinazione bit per bit dei valori SocketFlags che verranno usati durante la ricezione dei dati.
Restituisce
Attività che rappresenta l'operazione di ricezione 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 ricezione possono essere completate immediatamente o potrebbero non essere completate fino a quando non è disponibile almeno un byte (ma senza utilizzare alcun dato).
Eccezioni
Il buffers parametro è 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
- 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
- cancellationToken
- CancellationToken
Token di annullamento che può essere usato per annullare l'operazione asincrona.
Restituisce
Oggetto ValueTask<TResult> che rappresenta l'operazione di ricezione 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 ricezione possono essere completate immediatamente o potrebbero non essere completate fino a quando non è disponibile almeno un byte (ma senza utilizzare alcun dato).
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
- 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
- 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
Oggetto ValueTask<TResult> che rappresenta l'operazione di ricezione 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 ricezione possono essere completate immediatamente o potrebbero non essere completate fino a quando non è disponibile almeno un byte (ma senza utilizzare alcun dato).
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.