Socket.EndSend Methode

Definitie

Hiermee wordt een asynchrone verzending beëindigd.

Overloads

Name Description
EndSend(IAsyncResult)

Hiermee wordt een asynchrone verzending beëindigd.

EndSend(IAsyncResult, SocketError)

Hiermee wordt een asynchrone verzending beëindigd.

EndSend(IAsyncResult)

Hiermee wordt een asynchrone verzending beëindigd.

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

Parameters

asyncResult
IAsyncResult

Een IAsyncResult die statusinformatie voor deze asynchrone bewerking opslaat.

Retouren

Als dit lukt, wordt het aantal bytes verzonden naar de Socket; anders is er een ongeldige Socket fout.

Uitzonderingen

asyncResult is null.

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

EndSend(IAsyncResult) werd eerder aangeroepen voor het asynchrone verzenden.

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 -.

EndSend voltooit de bewerking die is gestart door BeginSend. U moet de IAsyncResult gemaakte door de overeenkomende BeginSend aanroep doorgeven.

Als u een verbindingsloos protocol gebruikt, EndSend wordt dit geblokkeerd totdat het datagram wordt verzonden. Als u een verbindingsgeoriënteerd protocol gebruikt, EndSend wordt dit geblokkeerd totdat een deel van de buffer is verzonden. Als de geretourneerde waarde EndSend aangeeft dat de buffer niet volledig is verzonden, roept u de BeginSend methode opnieuw aan en wijzigt u de buffer om de niet-verzonden gegevens op te slaan.

Er is geen garantie dat de gegevens die u verzendt, onmiddellijk in het netwerk worden weergegeven. Om de netwerkefficiëntie te verhogen, kan het onderliggende systeem de overdracht vertragen totdat een aanzienlijke hoeveelheid uitgaande gegevens wordt verzameld. Een geslaagde voltooiing van de BeginSend methode betekent dat het onderliggende systeem ruimte heeft gehad om uw gegevens te bufferen voor een netwerk verzenden.

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

De geslaagde voltooiing van een verzendbericht geeft niet aan dat de gegevens zijn afgeleverd. Als er geen bufferruimte beschikbaar is in het transportsysteem voor het opslaan van de gegevens die moeten worden verzonden, wordt verzenden geblokkeerd tenzij de socket in de niet-blokkeringsmodus is geplaatst.

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

EndSend(IAsyncResult, SocketError)

Hiermee wordt een asynchrone verzending beëindigd.

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

Parameters

asyncResult
IAsyncResult

Een IAsyncResult die statusinformatie voor deze asynchrone bewerking opslaat.

errorCode
SocketError

Een SocketError object waarin de socketfout wordt opgeslagen.

Retouren

Als dit lukt, wordt het aantal bytes verzonden naar de Socket; anders is er een ongeldige Socket fout.

Uitzonderingen

asyncResult is null.

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

EndSend(IAsyncResult) werd eerder aangeroepen voor het asynchrone verzenden.

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 -.

EndSend voltooit de bewerking die is gestart door BeginSend. U moet de IAsyncResult gemaakte door de overeenkomende BeginSend aanroep doorgeven.

Als u een verbindingsloos protocol gebruikt, EndSend wordt dit geblokkeerd totdat het datagram wordt verzonden. Als u een verbindingsgeoriënteerd protocol gebruikt, EndSend wordt dit geblokkeerd totdat een deel van de buffer is verzonden. Als de geretourneerde waarde EndSend aangeeft dat de buffer niet volledig is verzonden, roept u de BeginSend methode opnieuw aan en wijzigt u de buffer om de niet-verzonden gegevens op te slaan.

Er is geen garantie dat de gegevens die u verzendt, onmiddellijk in het netwerk worden weergegeven. Om de netwerkefficiëntie te verhogen, kan het onderliggende systeem de overdracht vertragen totdat een aanzienlijke hoeveelheid uitgaande gegevens wordt verzameld. Een geslaagde voltooiing van de BeginSend methode betekent dat het onderliggende systeem ruimte heeft gehad om uw gegevens te bufferen voor een netwerk verzenden.

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

De geslaagde voltooiing van een verzendbericht geeft niet aan dat de gegevens zijn afgeleverd. Als er geen bufferruimte beschikbaar is in het transportsysteem voor het opslaan van de gegevens die moeten worden verzonden, wordt verzenden geblokkeerd tenzij de socket in de niet-blokkeringsmodus is geplaatst.

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