Condividi tramite


Socket.ReceiveAsync Metodo

Definizione

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

e
SocketAsyncEventArgs

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 :

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

buffer
Memory<Byte>

Buffer per i dati ricevuti.

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

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

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