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

Objekt IAsyncResult , který ukládá informace o stavu a všechna uživatelem definovaná data pro tuto asynchronní operaci.

socketFlags
SocketFlags

Bitové kombinace SocketFlags hodnot pro přijatý paket.

endPoint
EndPoint

Zdroj EndPoint.

ipPacketInformation
IPPacketInformation

A IPAddress rozhraní přijatého paketu.

Návraty

V případě úspěchu se zobrazí počet přijatých bajtů. V případě neúspěchu vrátí 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+: Je Socket zavřený.

Pouze .NET Framework, .NET Core a .NET 5-6: Byl Socket uzavřen.

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 Task.

EndReceiveFrom dokončí operaci spuštěnou nástrojem BeginReceiveFrom. Musíte předat metodu vytvořenou IAsyncResult odpovídajícím BeginReceiveFrom voláním. EndReceiveFrom až do dokončení operace zablokuje volající vlákno.

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

Poznámka

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

Platí pro