Socket.EndReceive Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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
- BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)
- AsyncCallback
- IAsyncResult
- AsyncState
- Shutdown(SocketShutdown)
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
- BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)
- AsyncCallback
- IAsyncResult
- AsyncState
- Shutdown(SocketShutdown)