Condividi tramite


Socket.EndReceiveFrom(IAsyncResult, EndPoint) Metodo

Definizione

Termina una lettura asincrona in sospeso da uno specifico endpoint.

public:
 int EndReceiveFrom(IAsyncResult ^ asyncResult, System::Net::EndPoint ^ % endPoint);
public int EndReceiveFrom (IAsyncResult asyncResult, ref System.Net.EndPoint endPoint);
member this.EndReceiveFrom : IAsyncResult * EndPoint -> int
Public Function EndReceiveFrom (asyncResult As IAsyncResult, ByRef endPoint As EndPoint) As Integer

Parametri

asyncResult
IAsyncResult

Oggetto IAsyncResult che memorizza informazioni sullo stato e qualsiasi dato definito dall'utente per l'operazione asincrona.

endPoint
EndPoint

Il EndPoint di origine.

Restituisce

Se ha esito positivo, numero di byte ricevuti. Se ha esito negativo restituisce 0.

Eccezioni

asyncResult è null.

EndReceiveFrom(IAsyncResult, EndPoint) è stato precedentemente chiamato per la lettura asincrona.

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

-oppure-

Solo .NET 7+: l'oggetto Socket è stato chiuso.

Solo .NET Framework, .NET Core e .NET 5-6: è 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 Taskequivalenti basati su .

EndReceiveFrom completa l'operazione avviata da BeginReceiveFrom. È necessario passare l'oggetto IAsyncResult creato dalla chiamata corrispondente BeginReceiveFrom .

Il EndReceiveFrom metodo verrà bloccato fino a quando non saranno disponibili i dati. Se si usa un protocollo senza connessione, EndReceiveFrom leggerà il primo datagramma accodato disponibile nel buffer di rete in ingresso. Se si usa un protocollo orientato alla connessione, il EndReceiveFrom metodo leggerà la quantità di dati disponibile fino al numero di byte specificato nel size parametro del BeginReceiveFrom metodo . Se l'host remoto arresta la Socket connessione con il Shutdown metodo e tutti i dati disponibili sono stati ricevuti, il EndReceiveFrom metodo verrà completato immediatamente e restituirà zero byte. Per ottenere i dati ricevuti, chiamare il AsyncState metodo dell'oggetto IAsyncResult ed estrarre il buffer contenuto nell'oggetto stato risultante. Per identificare l'host di origine, estrarre l'oggetto ed eseguirne il EndPoint cast in un oggetto IPEndPoint. Usare il IPEndPoint.Address metodo per ottenere l'indirizzo IP e il IPEndPoint.Port metodo per ottenere il numero di porta.

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.

Si applica a