Sdílet prostřednictvím


Socket.EndReceive Metoda

Definice

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

Přetížení

Name Description
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
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

Obsahuje IAsyncResult informace o stavu a všechna uživatelsky definovaná data pro tuto asynchronní operaci.

Návraty

Celkový počet přijatých bajtů Metoda vrátí nulu (0), pouze pokud byly požadovány nulové bajty nebo pokud nejsou k dispozici žádné další bajty, protože peer socket provedl řádné vypnutí. Pokud jsou požadovány nulové bajty, operace příjmu se mohou dokončit okamžitě nebo nemusí být dokončeny, dokud nebude k dispozici alespoň jeden bajt (ale bez využití jakýchkoli dat).

Výjimky

asyncResult je null.

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

EndReceive dokončí operaci, kterou BeginReceivespustil . Musíte předat vytvořenou IAsyncResult odpovídajícím BeginReceive voláním.

Metoda EndReceive bude blokovat, dokud nebudou data k dispozici. Pokud používáte protokol bez připojení, EndReceive 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í, EndReceive bude metoda číst tolik dat, kolik je k dispozici až do počtu bajtů, které jste zadali v size parametru BeginReceive 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í nulové bajty.

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:

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

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.

Viz také

Platí pro

EndReceive(IAsyncResult, SocketError)

Zdroj:
Socket.cs
Zdroj:
Socket.cs
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

Obsahuje IAsyncResult informace o stavu a všechna uživatelsky definovaná data pro tuto asynchronní operaci.

errorCode
SocketError

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

Návraty

Celkový počet přijatých bajtů Metoda vrátí nulu (0), pouze pokud byly požadovány nulové bajty nebo pokud nejsou k dispozici žádné další bajty, protože peer socket provedl řádné vypnutí. Pokud jsou požadovány nulové bajty, operace příjmu se mohou dokončit okamžitě nebo nemusí být dokončeny, dokud nebude k dispozici alespoň jeden bajt (ale bez využití jakýchkoli dat).

Výjimky

asyncResult je null.

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

EndReceive dokončí operaci, kterou BeginReceivespustil . Musíte předat vytvořenou IAsyncResult odpovídajícím BeginReceive voláním.

Metoda EndReceive bude blokovat, dokud nebudou data k dispozici. Pokud používáte protokol bez připojení, EndReceive 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í, EndReceive bude metoda číst tolik dat, kolik je k dispozici až do počtu bajtů, které jste zadali v size parametru BeginReceive 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í nulové bajty.

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:

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

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.

Viz také

Platí pro