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
Objekt IAsyncResult , který ukládá informace o stavu a všechna uživatelem definovaná data pro tuto asynchronní operaci.
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
.
asyncResult
nebyla vrácena voláním BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object) metody.
EndReceiveFrom(IAsyncResult, EndPoint) byla dříve volána pro asynchronní čtení.
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 size
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í 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.