Socket.BeginReceiveMessageFrom 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.
Avvia la ricezione asincrona del numero di byte di dati specificato nella posizione specificata del buffer di dati, usando l'oggetto SocketFlags specificato e memorizza le informazioni su endpoint e pacchetti.
public:
IAsyncResult ^ BeginReceiveMessageFrom(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, System::Net::EndPoint ^ % remoteEP, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReceiveMessageFrom (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, AsyncCallback? callback, object? state);
public IAsyncResult BeginReceiveMessageFrom (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, AsyncCallback callback, object state);
member this.BeginReceiveMessageFrom : byte[] * int * int * System.Net.Sockets.SocketFlags * EndPoint * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceiveMessageFrom (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, ByRef remoteEP As EndPoint, callback As AsyncCallback, state As Object) As IAsyncResult
Parametri
- buffer
- Byte[]
Matrice di tipo Byte che costituisce la posizione di archiviazione per i dati ricevuti.
- offset
- Int32
Posizione in base zero nel parametro buffer
in cui memorizzare i dati.
- size
- Int32
Numero di byte da ricevere.
- socketFlags
- SocketFlags
Combinazione bit per bit dei valori di SocketFlags.
- remoteEP
- EndPoint
Riferimento a uno EndPoint dello stesso tipo dell'endpoint dell'host remoto da aggiornare alla ricezione sincrona.
- callback
- AsyncCallback
Delegato AsyncCallback.
- state
- Object
Oggetto che contiene informazioni sullo stato per questa richiesta.
Restituisce
Oggetto IAsyncResult che fa riferimento alla lettura asincrona.
Eccezioni
Solo .NET Framework e .NET 5 e versioni precedenti: si è verificato un errore durante il tentativo di accesso al socket.
offset
è minore di 0.
-oppure-
offset
è maggiore della lunghezza di buffer
.
-oppure-
size
è minore di 0.
-oppure-
size
è maggiore della lunghezza di buffer
meno il valore del parametro offset
.
L'oggetto Socket è stato chiuso.
Commenti
Importante
Si tratta di un'API di compatibilità. Non è consigliabile usare i metodi APM (Begin*
e End*
) per nuovi sviluppi. Usare invece gli Task
equivalenti basati su .
È possibile passare un callback che implementa AsyncCallback a BeginReceiveMessageFrom per ricevere una notifica sul completamento dell'operazione. Si noti che se lo stack di rete sottostante completa l'operazione in modo sincrono, il callback verrà eseguito inline, durante la chiamata a BeginReceiveMessageFrom. In questo caso, la CompletedSynchronously proprietà sull'oggetto restituito verrà impostata IAsyncResult su true
per indicare che il metodo è stato completato in modo sincrono. Utilizzare la AsyncState proprietà di IAsyncResult per ottenere l'oggetto stato passato al BeginReceiveMessageFrom metodo .
L'operazione asincrona BeginReceiveMessageFrom deve essere completata chiamando il EndReceiveMessageFrom metodo . In genere, il metodo viene richiamato dal AsyncCallback delegato. EndReceiveMessageFrom blocca il thread chiamante fino al completamento dell'operazione.
Per annullare un oggetto in sospeso BeginReceiveMessageFrom, chiamare il Close metodo .
Questo metodo legge i dati nel buffer
parametro e acquisisce l'endpoint host remoto da cui vengono inviati i dati, nonché informazioni sul pacchetto ricevuto. Per informazioni su come recuperare questo endpoint, vedere EndReceiveMessageFrom. Questo metodo è più utile se si intende ricevere in modo asincrono datagrammi senza connessione da un host sconosciuto o da più host.
Nota
Se si riceve un SocketExceptionoggetto , utilizzare la SocketException.ErrorCode proprietà per ottenere il codice di errore specifico.
Nota
Questo membro genera informazioni di traccia quando viene abilitata la funzionalità di traccia di rete nell'applicazione in uso. Per altre informazioni, vedere Traccia di rete in .NET Framework.
Nota
Il contesto di esecuzione (il contesto di sicurezza, l'utente rappresentato e il contesto chiamante) viene memorizzato nella cache per i metodi asincroni Socket . Dopo il primo uso di un contesto specifico (un metodo asincrono Socket specifico, un'istanza specifica Socket e un callback specifico), gli usi successivi di tale contesto vedranno un miglioramento delle prestazioni.