Sdílet prostřednictvím


Socket.EndReceive Metoda

Definice

Ukončí čekající asynchronní čtení.

Přetížení

EndReceive(IAsyncResult)

Ukončí čekající asynchronní čtení.

EndReceive(IAsyncResult, SocketError)

Ukončí čekající asynchronní čtení.

EndReceive(IAsyncResult)

Zdroj:
Socket.cs
Zdroj:
Socket.cs
Zdroj:
Socket.cs

Ukončí čekající asynchronní čtení.

public:
 int EndReceive(IAsyncResult ^ asyncResult);
public int EndReceive (IAsyncResult asyncResult);
member this.EndReceive : IAsyncResult -> int
Public Function EndReceive (asyncResult As IAsyncResult) 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

Počet přijatých bajtů.

Výjimky

asyncResult je null.

EndReceive(IAsyncResult) 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.

EndReceive dokončí operaci spuštěnou nástrojem BeginReceive. Musíte předat IAsyncResult vytvořené odpovídající BeginReceive volání.

Metoda EndReceive bude blokovat, dokud nebudou k dispozici data. Pokud používáte protokol bez připojení, EndReceive 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, EndReceive kolik je k dispozici, až do počtu bajtů zadaných v parametru sizeBeginReceive metody. Pokud vzdálený hostitel vypne Socket připojení s metodou Shutdown a všechna dostupná data byla přijata, EndReceive metoda se okamžitě dokončí a vrátí nula bajtů.

Poznámka

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

Poznámka

Všechny vstupně-výstupní operace iniciované daným vláknem se při ukončení vlákna zruší. Čekající asynchronní operace může selhat, pokud se vlákno ukončí před dokončením operace.

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.

Viz také

Platí pro

EndReceive(IAsyncResult, SocketError)

Zdroj:
Socket.cs
Zdroj:
Socket.cs
Zdroj:
Socket.cs

Ukončí čekající asynchronní čtení.

public:
 int EndReceive(IAsyncResult ^ asyncResult, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int EndReceive (IAsyncResult asyncResult, out System.Net.Sockets.SocketError errorCode);
member this.EndReceive : IAsyncResult * SocketError -> int
Public Function EndReceive (asyncResult As IAsyncResult, ByRef errorCode As SocketError) As Integer

Parametry

asyncResult
IAsyncResult

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

errorCode
SocketError

Objekt SocketError , který ukládá chybu soketu.

Návraty

Počet přijatých bajtů.

Výjimky

asyncResult je null.

EndReceive(IAsyncResult) 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.

EndReceive dokončí operaci spuštěnou nástrojem BeginReceive. Musíte předat IAsyncResult vytvořené odpovídající BeginReceive volání.

Metoda EndReceive bude blokovat, dokud nebudou k dispozici data. Pokud používáte protokol bez připojení, EndReceive 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, EndReceive kolik je k dispozici, až do počtu bajtů zadaných v parametru sizeBeginReceive metody. Pokud vzdálený hostitel vypne Socket připojení s metodou Shutdown a všechna dostupná data byla přijata, EndReceive metoda se okamžitě dokončí a vrátí nula bajtů.

Poznámka

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

Poznámka

Všechny vstupně-výstupní operace iniciované daným vláknem se při ukončení vlákna zruší. Čekající asynchronní operace může selhat, pokud se vlákno ukončí před dokončením operace.

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.

Viz také

Platí pro