Socket.EndReceive Metoda

Definice

Ukončí asynchronní čtení čekající na zpracování.

Přetížení

EndReceive(IAsyncResult)

Ukončí asynchronní čtení čekající na zpracování.

EndReceive(IAsyncResult, SocketError)

Ukončí asynchronní čtení čekající na zpracování.

EndReceive(IAsyncResult)

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

Ukončí asynchronní čtení čekající na zpracování.

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+: Je Socket zavřený.

Pouze .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 metodu vytvořenou IAsyncResult odpovídajícím BeginReceive voláním.

Metoda EndReceive se zablokuje, dokud nebudou data k dispozici. Pokud používáte protokol bez připojení, EndReceive nástroj přečte první datagram ve frontě, který je k dispozici v příchozí síťové vyrovnávací paměti. 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ů, které jste zadali v size parametru BeginReceive metody . Pokud vzdálený hostitel ukončí Socket připojení pomocí Shutdown metody a byla přijata všechna dostupná data, 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 jsou při ukončení vlákna zrušeny. Č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čí asynchronní čtení čekající na zpracování.

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+: Je Socket zavřený.

Pouze .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 metodu vytvořenou IAsyncResult odpovídajícím BeginReceive voláním.

Metoda EndReceive se zablokuje, dokud nebudou data k dispozici. Pokud používáte protokol bez připojení, EndReceive nástroj přečte první datagram ve frontě, který je k dispozici v příchozí síťové vyrovnávací paměti. 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ů, které jste zadali v size parametru BeginReceive metody . Pokud vzdálený hostitel ukončí Socket připojení pomocí Shutdown metody a byla přijata všechna dostupná data, 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 jsou při ukončení vlákna zrušeny. Č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