Sdílet prostřednictvím


Socket.EndReceiveMessageFrom Metoda

Definice

Ukončí čekající asynchronní čtení z konkrétního koncového bodu. Tato metoda také odhalí více informací o paketu než EndReceiveFrom(IAsyncResult, EndPoint).

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

Parametry

asyncResult
IAsyncResult

Obsahuje IAsyncResult informace o stavu a všechna uživatelsky definovaná data pro tuto asynchronní operaci.

socketFlags
SocketFlags

Bitové kombinace hodnot přijatého SocketFlags paketu.

endPoint
EndPoint

Zdroj EndPoint.

ipPacketInformation
IPPacketInformation

Rozhraní IPAddress přijatého paketu.

Návraty

V případě úspěchu počet přijatých bajtů. V případě neúspěchu vrátí hodnotu 0.

Výjimky

asyncResult je null

nebo

endPoint je null.

Při pokusu o přístup k soketu došlo k chybě.

nebo

Pouze .NET 7+ : Tato Socket možnost byla uzavřena.

Pouze rozhraní .NET Framework, .NET Core a .NET 5-6: Bylo Socket uzavřeno.

Poznámky

Důležité

Toto je rozhraní API pro kompatibilitu. Pro nový vývoj nedoporučujeme používat metody APM (Begin* a End*). Místo toho použijte ekvivalenty založené na Taskzákladech.

EndReceiveFrom dokončí operaci, kterou BeginReceiveFromspustil . Musíte předat vytvořenou IAsyncResult odpovídajícím BeginReceiveFrom voláním. EndReceiveFrom zablokuje volající vlákno, dokud se operace nedokončila.

Zkontrolujte ipPacketInformation , jestli potřebujete zjistit, jestli se datagram odeslal pomocí jednosměrového vysílání, vícesměrového vysílání nebo adresy všesměrového vysílání.

Poznámka:

Pokud se zobrazí kód SocketExceptionchyby, použijte SocketException.ErrorCode vlastnost k získání konkrétního kódu chyby.

Platí pro