Condividi tramite


Socket.ReceiveFromAsync Metodo

Definizione

Overload

ReceiveFromAsync(SocketAsyncEventArgs)

Inizia a ricevere dati in modalità asincrona da un dispositivo di rete specificato.

ReceiveFromAsync(ArraySegment<Byte>, EndPoint)

Riceve i dati e restituisce l'endpoint dell'host di invio.

ReceiveFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Riceve i dati e restituisce l'endpoint dell'host di invio.

ReceiveFromAsync(Memory<Byte>, EndPoint, CancellationToken)

Riceve i dati e restituisce l'endpoint dell'host di invio.

ReceiveFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken)

Riceve i dati e restituisce l'endpoint dell'host di invio.

ReceiveFromAsync(Memory<Byte>, SocketFlags, SocketAddress, CancellationToken)

Riceve un datagramma nel buffer di dati, utilizzando l'oggetto SocketFlags specificato e memorizza l'endpoint.

ReceiveFromAsync(SocketAsyncEventArgs)

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

Inizia a ricevere dati in modalità asincrona da un dispositivo di rete specificato.

public:
 bool ReceiveFromAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool ReceiveFromAsync (System.Net.Sockets.SocketAsyncEventArgs e);
member this.ReceiveFromAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function ReceiveFromAsync (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

L'oggetto RemoteEndPoint non può essere null.

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 ReceiveFromAsync metodo viene usato principalmente per ricevere dati su un socket senza connessione. L'indirizzo locale del socket deve essere noto.

Il chiamante deve impostare la SocketAsyncEventArgs.RemoteEndPoint proprietà su uno EndPoint dello stesso tipo dell'endpoint dell'host remoto. La proprietà verrà aggiornata al completamento della ricezione all'endpoint remoto effettivo.

La SocketAsyncEventArgs.SocketFlags proprietà sul parametro fornisce al e 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 ReceiveFromAsync metodo, in modo che le informazioni siano 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 orientati ai messaggi, un messaggio in ingresso viene inserito nel buffer fino alle dimensioni totali del buffer. Le SocketAsyncEventArgs.Count proprietà e SocketAsyncEventArgs.Offset determinano dove vengono inseriti i dati nel buffer e la quantità di dati.

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 nel buffer internamente vengono esauriti. Le SocketAsyncEventArgs.Count proprietà e SocketAsyncEventArgs.Offset determinano dove vengono inseriti i dati nel buffer e la quantità di dati.

Vedi anche

Si applica a

ReceiveFromAsync(ArraySegment<Byte>, EndPoint)

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

Riceve i dati e restituisce l'endpoint dell'host di invio.

public:
 System::Threading::Tasks::Task<System::Net::Sockets::SocketReceiveFromResult> ^ ReceiveFromAsync(ArraySegment<System::Byte> buffer, System::Net::EndPoint ^ remoteEndPoint);
public System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveFromResult> ReceiveFromAsync (ArraySegment<byte> buffer, System.Net.EndPoint remoteEndPoint);
member this.ReceiveFromAsync : ArraySegment<byte> * System.Net.EndPoint -> System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveFromResult>
Public Function ReceiveFromAsync (buffer As ArraySegment(Of Byte), remoteEndPoint As EndPoint) As Task(Of SocketReceiveFromResult)

Parametri

buffer
ArraySegment<Byte>

Buffer per i dati ricevuti.

remoteEndPoint
EndPoint

Endpoint dello stesso tipo dell'endpoint dell'host remoto.

Restituisce

Attività asincrona che viene completata con un SocketReceiveFromResult contenente il numero di byte ricevuti e l'endpoint dell'host di invio.

Eccezioni

remoteEndPoint è null.

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

L'oggetto Socket è stato chiuso.

Uno dei chiamanti nello stack di chiamate non dispone delle autorizzazioni richieste.

Si applica a

ReceiveFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

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

Riceve i dati e restituisce l'endpoint dell'host di invio.

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

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.

remoteEndPoint
EndPoint

Endpoint dello stesso tipo dell'endpoint dell'host remoto.

Restituisce

Attività asincrona che viene completata con un SocketReceiveFromResult contenente il numero di byte ricevuti e l'endpoint dell'host di invio.

Eccezioni

remoteEndPoint è null.

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

L'oggetto Socket è stato chiuso.

Uno dei chiamanti nello stack di chiamate non dispone delle autorizzazioni richieste.

Si applica a

ReceiveFromAsync(Memory<Byte>, EndPoint, CancellationToken)

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

Riceve i dati e restituisce l'endpoint dell'host di invio.

public System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveFromResult> ReceiveFromAsync (Memory<byte> buffer, System.Net.EndPoint remoteEndPoint, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveFromAsync : Memory<byte> * System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveFromResult>
Public Function ReceiveFromAsync (buffer As Memory(Of Byte), remoteEndPoint As EndPoint, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of SocketReceiveFromResult)

Parametri

buffer
Memory<Byte>

Buffer per i dati ricevuti.

remoteEndPoint
EndPoint

Endpoint dello stesso tipo dell'endpoint dell'host remoto.

cancellationToken
CancellationToken

Token di annullamento che può essere usato per segnalare che l'operazione asincrona deve essere annullata.

Restituisce

Attività asincrona che viene completata con un SocketReceiveFromResult contenente il numero di byte ricevuti e l'endpoint dell'host di invio.

Eccezioni

remoteEndPoint è null.

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

L'oggetto Socket è stato chiuso.

Uno dei chiamanti nello stack di chiamate non dispone delle autorizzazioni richieste.

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

Si applica a

ReceiveFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken)

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

Riceve i dati e restituisce l'endpoint dell'host di invio.

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

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.

remoteEndPoint
EndPoint

Endpoint dello stesso tipo dell'endpoint dell'host remoto.

cancellationToken
CancellationToken

Token di annullamento che può essere usato per segnalare che l'operazione asincrona deve essere annullata.

Restituisce

Attività asincrona che viene completata con un SocketReceiveFromResult contenente il numero di byte ricevuti e l'endpoint dell'host di invio.

Eccezioni

remoteEndPoint è null.

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

L'oggetto Socket è stato chiuso.

Uno dei chiamanti nello stack di chiamate non dispone delle autorizzazioni richieste.

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

Si applica a

ReceiveFromAsync(Memory<Byte>, SocketFlags, SocketAddress, CancellationToken)

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

Riceve un datagramma nel buffer di dati, utilizzando l'oggetto SocketFlags specificato e memorizza l'endpoint.

public System.Threading.Tasks.ValueTask<int> ReceiveFromAsync (Memory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.SocketAddress receivedAddress, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveFromAsync : Memory<byte> * System.Net.Sockets.SocketFlags * System.Net.SocketAddress * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function ReceiveFromAsync (buffer As Memory(Of Byte), socketFlags As SocketFlags, receivedAddress As SocketAddress, 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 SocketFlags valori che verranno usati durante la ricezione dei dati.

receivedAddress
SocketAddress

SocketAddress Istanza di che viene aggiornata con il valore del peer remoto quando termina questo metodo.

cancellationToken
CancellationToken

Token di annullamento che può essere usato per segnalare che l'operazione asincrona deve essere annullata.

Restituisce

Attività asincrona che viene completata con un SocketReceiveFromResult contenente il numero di byte ricevuti e l'endpoint dell'host di invio.

Eccezioni

receivedAddress è null.

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

L'oggetto Socket è stato chiuso.

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

Si applica a