Freigeben über


Socket.EndReceiveMessageFrom Methode

Definition

Beendet einen ausstehenden asynchronen Lesevorgang von einem bestimmten Endpunkt. Diese Methode stellt außerdem mehr Informationen über das Paket als EndReceiveFrom(IAsyncResult, EndPoint) bereit.

public:
 int EndReceiveMessageFrom(IAsyncResult ^ asyncResult, System::Net::Sockets::SocketFlags % socketFlags, System::Net::EndPoint ^ % endPoint, [Runtime::InteropServices::Out] System::Net::Sockets::IPPacketInformation % ipPacketInformation);
public int EndReceiveMessageFrom (IAsyncResult asyncResult, ref System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint endPoint, out System.Net.Sockets.IPPacketInformation ipPacketInformation);
member this.EndReceiveMessageFrom : IAsyncResult * SocketFlags * EndPoint * IPPacketInformation -> int
Public Function EndReceiveMessageFrom (asyncResult As IAsyncResult, ByRef socketFlags As SocketFlags, ByRef endPoint As EndPoint, ByRef ipPacketInformation As IPPacketInformation) As Integer

Parameter

asyncResult
IAsyncResult

Ein IAsyncResult, das Zustandsinformationen über diesen asynchronen Vorgang sowie ggf. vorhandene benutzerdefinierte Daten speichert.

socketFlags
SocketFlags

Eine bitweise Kombination der SocketFlags-Werte für das empfangene Paket.

endPoint
EndPoint

Der Quell-EndPoint.

ipPacketInformation
IPPacketInformation

Die IPAddress und die Schnittstelle des empfangenen Pakets.

Gibt zurück

Wenn erfolgreich, die Anzahl der empfangenen Bytes. Wenn die Ausführung nicht erfolgreich ist, wird 0 zurückgegeben.

Ausnahmen

asyncResult ist gleich null.

- oder -

endPoint ist null.

asyncResult wurde nicht durch einen Aufruf der BeginReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)-Methode zurückgegeben.

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. EndReceiveFrom blockiert den aufrufenden Thread, bis der Vorgang abgeschlossen ist.

Überprüfen Sie ipPacketInformation , ob Sie wissen müssen, ob das Datagramm mit einer Unicast-, Multicast- oder Broadcastadresse gesendet wurde.

Hinweis

Wenn Sie erhalten eine SocketException, verwenden die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode zu erhalten.

Gilt für: