Socket.EndReceiveFrom(IAsyncResult, EndPoint) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Beendet einen ausstehenden asynchronen Lesevorgang von einem bestimmten Endpunkt.
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
Parameter
- asyncResult
- IAsyncResult
Ein IAsyncResult, das Zustandsinformationen über diesen asynchronen Vorgang sowie ggf. vorhandene benutzerdefinierte Daten speichert.
Gibt zurück
Wenn erfolgreich, die Anzahl der empfangenen Bytes. Wenn die Ausführung nicht erfolgreich ist, wird 0 zurückgegeben.
Ausnahmen
asyncResult
ist null
.
asyncResult
wurde nicht durch einen Aufruf der BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)-Methode zurückgegeben.
EndReceiveFrom(IAsyncResult, EndPoint) wurde bereits für den asynchronen Lesevorgang aufgerufen.
Fehler beim Versuch, auf den Socket zuzugreifen.
- oder -
Nur .NET 7 und höher: Die Socket wurde geschlossen.
nur .NET Framework, .NET Core und .NET 5-6: Die Socket wurde geschlossen.
Hinweise
Wichtig
Dies ist eine Kompatibilitäts-API. Es wird nicht empfohlen, die Methoden APM (Begin*
und End*
) für die Neuentwicklung zu verwenden. Verwenden Sie stattdessen die Task
-basierten Entsprechungen.
EndReceiveFrom schließt den von gestarteten Vorgang ab BeginReceiveFrom. Sie müssen das übergeben, das IAsyncResult vom übereinstimmenden BeginReceiveFrom Aufruf erstellt wurde.
Die EndReceiveFrom -Methode wird blockiert, bis Daten verfügbar sind. Wenn Sie ein verbindungsloses Protokoll verwenden, EndReceiveFrom liest das erste in die Warteschlange eingereihte Datagramm, das im eingehenden Netzwerkpuffer verfügbar ist. Wenn Sie ein verbindungsorientiertes Protokoll verwenden, liest die EndReceiveFrom Methode bis zu der Anzahl von Bytes, die Sie im size
Parameter der BeginReceiveFrom -Methode angegeben haben, so viele Daten, wie verfügbar sind. Wenn der Remotehost die Verbindung mit der SocketShutdown -Methode beendet und alle verfügbaren Daten empfangen wurden, wird die EndReceiveFrom Methode sofort abgeschlossen und gibt null Bytes zurück. Um die empfangenen Daten abzurufen, rufen Sie die AsyncState -Methode des IAsyncResult -Objekts auf, und extrahieren Sie den Puffer, der im resultierenden Zustandsobjekt enthalten ist. Um den ursprünglichen Host zu identifizieren, extrahieren Sie den EndPoint , und wandeln Sie ihn in ein um IPEndPoint. Verwenden Sie die IPEndPoint.Address -Methode, um die IP-Adresse und die IPEndPoint.Port -Methode zum Abrufen der Portnummer abzurufen.
Hinweis
Wenn Sie erhalten eine SocketException, verwenden die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode zu erhalten.
Hinweis
Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren. Weitere Informationen finden Sie unter Netzwerkablaufverfolgung in .NET Framework.