Sdílet prostřednictvím


Socket.EndReceiveFrom(IAsyncResult, EndPoint) Metoda

Definice

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.

endPoint
EndPoint

Zdroj EndPoint.

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.

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.

Platí pro