Socket.EndReceiveMessageFrom Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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.
- 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
nebyla vrácena voláním BeginReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object) metody .
EndReceiveMessageFrom(IAsyncResult, SocketFlags, EndPoint, IPPacketInformation) byla dříve volána pro asynchronní čtení.
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.