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

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

endPoint
EndPoint

Zdroj EndPoint.

Návraty

V případě úspěchu se zobrazí počet přijatých bajtů. V případě neúspěchu vrátí hodnotu 0.

Výjimky

asyncResult je null.

EndReceiveFrom(IAsyncResult, EndPoint) byla dříve volána pro asynchronní čtení.

Při pokusu o přístup k soketu došlo k chybě.

-nebo-

Pouze .NET 7+: Byl Socket uzavřen.

Pouze rozhraní .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 IAsyncResult vytvořené odpovídající BeginReceiveFrom volání.

Metoda EndReceiveFrom bude blokovat, dokud nebudou k dispozici data. Pokud používáte protokol bez připojení, EndReceiveFrom přečte první vložený datagram dostupný ve vyrovnávací paměti příchozí sítě. Pokud používáte protokol orientovaný na připojení, metoda přečte tolik dat, EndReceiveFrom kolik je k dispozici, až do počtu bajtů zadaných v parametru sizeBeginReceiveFrom 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í nula bajtů. Chcete-li získat přijatá data, zavolejte AsyncState metodu objektu IAsyncResult a extrahujte vyrovnávací paměť obsaženou ve výsledném objektu stavu. Pokud chcete identifikovat původního hostitele, extrahujte ho EndPoint a přetypujte ho IPEndPointna . IPEndPoint.Address Pomocí metody získejte IP adresu a metodu IPEndPoint.Port pro získání čísla portu.

Poznámka

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

Poznámka

Tento člen poskytuje trasovací informace, když je ve vaší aplikaci povoleno trasování sítě. Další informace najdete v tématu Trasování sítě v rozhraní .NET Framework.

Platí pro