Socket.EndReceive Methode

Definitie

Hiermee wordt een asynchrone leesbewerking beëindigd.

Overloads

Name Description
EndReceive(IAsyncResult)

Hiermee wordt een asynchrone leesbewerking beëindigd.

EndReceive(IAsyncResult, SocketError)

Hiermee wordt een asynchrone leesbewerking beëindigd.

EndReceive(IAsyncResult)

Hiermee wordt een asynchrone leesbewerking beëindigd.

public:
 int EndReceive(IAsyncResult ^ asyncResult);
public int EndReceive(IAsyncResult asyncResult);
member this.EndReceive : IAsyncResult -> int
Public Function EndReceive (asyncResult As IAsyncResult) As Integer

Parameters

asyncResult
IAsyncResult

Een IAsyncResult die statusinformatie en door de gebruiker gedefinieerde gegevens voor deze asynchrone bewerking opslaat.

Retouren

Het totale aantal ontvangen bytes. De methode retourneert alleen nul (0) als er nul bytes zijn aangevraagd of als er geen bytes meer beschikbaar zijn omdat de peersocket een probleemloos afsluiten heeft uitgevoerd. Als er nul bytes worden aangevraagd, kunnen ontvangstbewerkingen onmiddellijk of niet worden voltooid totdat ten minste één byte beschikbaar is (maar zonder gegevens te gebruiken).

Uitzonderingen

asyncResult is null.

asyncResult is niet geretourneerd door een aanroep naar de BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) methode.

EndReceive(IAsyncResult) werd eerder aangeroepen voor de asynchrone leesbewerking.

Er is een fout opgetreden bij het openen van de socket.

– of –

.NET 7+ alleen: de Socket is gesloten.

.NET Framework, .NET Core en .NET 5-6: de Socket is gesloten.

Opmerkingen

Important

Dit is een compatibiliteits-API. Het wordt afgeraden om de APM - (Begin* en End*) methoden voor nieuwe ontwikkeling te gebruiken. Gebruik in plaats daarvan de Taskequivalenten op basis van -.

EndReceive voltooit de bewerking die is gestart door BeginReceive. U moet de IAsyncResult gemaakte door de overeenkomende BeginReceive aanroep doorgeven.

De EndReceive methode wordt geblokkeerd totdat gegevens beschikbaar zijn. Als u een verbindingsloos protocol gebruikt, EndReceive leest u het eerste enqueued datagram dat beschikbaar is in de binnenkomende netwerkbuffer. Als u een verbindingsgeoriënteerd protocol gebruikt, leest de EndReceive methode zoveel gegevens als beschikbaar is tot het aantal bytes dat u hebt opgegeven in de size parameter van de BeginReceive methode. Als de externe host de Socket verbinding met de Shutdown methode afsluit en alle beschikbare gegevens zijn ontvangen, wordt de EndReceive methode onmiddellijk voltooid en worden nul bytes geretourneerd.

Note

Als u een SocketExceptionontvangt, gebruikt u de SocketException.ErrorCode eigenschap om de specifieke foutcode te verkrijgen.

Note

Alle I/O die door een bepaalde thread wordt geïnitieerd, wordt geannuleerd wanneer deze thread wordt afgesloten. Een asynchrone bewerking in behandeling kan mislukken als de thread wordt afgesloten voordat de bewerking is voltooid.

Note

Dit lid voert traceringsgegevens uit wanneer u netwerktracering inschakelt in uw toepassing. Zie Network Tracing in .NET Framework voor meer informatie.

Zie ook

Van toepassing op

EndReceive(IAsyncResult, SocketError)

Hiermee wordt een asynchrone leesbewerking beëindigd.

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

Parameters

asyncResult
IAsyncResult

Een IAsyncResult die statusinformatie en door de gebruiker gedefinieerde gegevens voor deze asynchrone bewerking opslaat.

errorCode
SocketError

Een SocketError object waarin de socketfout wordt opgeslagen.

Retouren

Het totale aantal ontvangen bytes. De methode retourneert alleen nul (0) als er nul bytes zijn aangevraagd of als er geen bytes meer beschikbaar zijn omdat de peersocket een probleemloos afsluiten heeft uitgevoerd. Als er nul bytes worden aangevraagd, kunnen ontvangstbewerkingen onmiddellijk of niet worden voltooid totdat ten minste één byte beschikbaar is (maar zonder gegevens te gebruiken).

Uitzonderingen

asyncResult is null.

asyncResult is niet geretourneerd door een aanroep naar de BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) methode.

EndReceive(IAsyncResult) werd eerder aangeroepen voor de asynchrone leesbewerking.

Er is een fout opgetreden bij het openen van de socket.

– of –

.NET 7+ alleen: de Socket is gesloten.

.NET Framework, .NET Core en .NET 5-6: de Socket is gesloten.

Opmerkingen

Important

Dit is een compatibiliteits-API. Het wordt afgeraden om de APM - (Begin* en End*) methoden voor nieuwe ontwikkeling te gebruiken. Gebruik in plaats daarvan de Taskequivalenten op basis van -.

EndReceive voltooit de bewerking die is gestart door BeginReceive. U moet de IAsyncResult gemaakte door de overeenkomende BeginReceive aanroep doorgeven.

De EndReceive methode wordt geblokkeerd totdat gegevens beschikbaar zijn. Als u een verbindingsloos protocol gebruikt, EndReceive leest u het eerste enqueued datagram dat beschikbaar is in de binnenkomende netwerkbuffer. Als u een verbindingsgeoriënteerd protocol gebruikt, leest de EndReceive methode zoveel gegevens als beschikbaar is tot het aantal bytes dat u hebt opgegeven in de size parameter van de BeginReceive methode. Als de externe host de Socket verbinding met de Shutdown methode afsluit en alle beschikbare gegevens zijn ontvangen, wordt de EndReceive methode onmiddellijk voltooid en worden nul bytes geretourneerd.

Note

Als u een SocketExceptionontvangt, gebruikt u de SocketException.ErrorCode eigenschap om de specifieke foutcode te verkrijgen.

Note

Alle I/O die door een bepaalde thread wordt geïnitieerd, wordt geannuleerd wanneer deze thread wordt afgesloten. Een asynchrone bewerking in behandeling kan mislukken als de thread wordt afgesloten voordat de bewerking is voltooid.

Note

Dit lid voert traceringsgegevens uit wanneer u netwerktracering inschakelt in uw toepassing. Zie Network Tracing in .NET Framework voor meer informatie.

Zie ook

Van toepassing op