Socket.EndReceiveFrom(IAsyncResult, EndPoint) 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.
public:
int EndReceiveFrom(IAsyncResult ^ asyncResult, System::Net::EndPoint ^ % endPoint);
public int EndReceiveFrom(IAsyncResult asyncResult, ref System.Net.EndPoint endPoint);
member this.EndReceiveFrom : IAsyncResult * EndPoint -> int
Public Function EndReceiveFrom (asyncResult As IAsyncResult, ByRef endPoint As EndPoint) As Integer
Parametry
- asyncResult
- IAsyncResult
Obsahuje IAsyncResult informace o stavu a všechna uživatelsky definovaná data pro tuto asynchronní operaci.
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.
asyncResult nebyla vrácena voláním BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object) metody.
EndReceiveFrom(IAsyncResult, EndPoint) 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.
Metoda EndReceiveFrom bude blokovat, dokud nebudou data k dispozici. Pokud používáte protokol bez připojení, EndReceiveFrom přečte první vyčíslený datagram dostupný v příchozí síťové vyrovnávací paměti. Pokud používáte protokol orientovaný na připojení, EndReceiveFrom bude metoda číst tolik dat, kolik je k dispozici až do počtu bajtů, které jste zadali v size parametru BeginReceiveFrom metody. Pokud vzdálený hostitel vypne Socket připojení s metodou Shutdown a všechna dostupná data byla přijata, EndReceiveFrom metoda se okamžitě dokončí a vrátí nulové bajty. Chcete-li získat přijatá data, zavolejte AsyncState metodu objektu IAsyncResult a extrahujte vyrovnávací paměť obsaženou ve výsledném stav objektu. Chcete-li identifikovat původního hostitele, extrahujte jej a přetypujte EndPoint na .IPEndPoint
IPEndPoint.Address Pomocí metody získejte IP adresu a metodu IPEndPoint.Port k získání čísla portu.
Poznámka:
Pokud se zobrazí kód SocketExceptionchyby, použijte SocketException.ErrorCode vlastnost k získání konkrétního kódu chyby.
Poznámka:
Tento člen vypíše informace o trasování, když ve své aplikaci povolíte trasování sítě. Další informace naleznete v tématu Trasování sítě v rozhraní .NET Framework.