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
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.
- 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 nebyla vrácena voláním BeginReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object) metody.
EndReceiveMessageFrom(IAsyncResult, SocketFlags, EndPoint, IPPacketInformation) byl dříve volán pro asynchronní čtení.
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.