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 Objekt, das Zustandsinformationen und alle benutzerdefinierten Daten für diesen asynchronen Vorgang speichert.
Gibt zurück
Bei erfolgreicher Ausführung wird die Anzahl der empfangenen Bytes angezeigt. Wenn dies nicht erfolgreich ist, wird 0 zurückgegeben.
Ausnahmen
asyncResult ist null.
asyncResult wurde nicht von einem Aufruf der BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object) Methode zurückgegeben.
EndReceiveFrom(IAsyncResult, EndPoint) wurde zuvor für den asynchronen Lesevorgang aufgerufen.
Beim Versuch, auf den Socket zuzugreifen, ist ein Fehler aufgetreten.
- oder -
.NET 7+ nur: Die Socket Datei wurde geschlossen.
.NET Framework, .NET Core und .NET 5-6: Die Socket Datei wurde geschlossen.
Hinweise
Von Bedeutung
Dies ist eine Kompatibilitäts-API. Es wird nicht empfohlen, die Methoden APM (Begin* und End*) für die neue Entwicklung zu verwenden. Verwenden Sie stattdessen die Task-basierten Entsprechungen.
EndReceiveFrom schließt den Vorgang ab, der von BeginReceiveFrom. Sie müssen den IAsyncResult vom übereinstimmenden BeginReceiveFrom Aufruf erstellten Übergeben.
Die EndReceiveFrom Methode wird blockiert, bis Daten verfügbar sind. Wenn Sie ein verbindungsloses Protokoll verwenden, wird das erste enqueuierte Datagram gelesen, EndReceiveFrom das im eingehenden Netzwerkpuffer verfügbar ist. Wenn Sie ein verbindungsorientiertes Protokoll verwenden, liest die EndReceiveFrom Methode so viele Daten wie verfügbar bis zur Anzahl der Bytes, die size Sie im Parameter der BeginReceiveFrom Methode angegeben haben. Wenn der Remotehost die Socket Verbindung mit der Shutdown Methode herunterfahren und alle verfügbaren Daten empfangen wurden, wird die EndReceiveFrom Methode sofort abgeschlossen und gibt null Bytes zurück. Rufen Sie zum Abrufen der empfangenen Daten 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 EndPoint Und umwandeln Sie ihn in ein IPEndPoint. Verwenden Sie die IPEndPoint.Address Methode, um die IP-Adresse und die IPEndPoint.Port Methode abzurufen, um die Portnummer abzurufen.
Hinweis
Wenn Sie ein SocketExceptionObjekt erhalten, verwenden Sie die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode abzurufen.
Hinweis
Dieses Mitglied gibt Protokollierungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in Ihrer Anwendung aktivieren. Weitere Informationen finden Sie unter Network Tracing in .NET Framework.