Freigeben über


Socket.EndSend Methode

Definition

Beendet ein ausstehendes asynchrones Senden.

Überlädt

Name Beschreibung
EndSend(IAsyncResult)

Beendet ein ausstehendes asynchrones Senden.

EndSend(IAsyncResult, SocketError)

Beendet ein ausstehendes asynchrones Senden.

EndSend(IAsyncResult)

Quelle:
Socket.cs
Quelle:
Socket.cs
Quelle:
Socket.cs
Quelle:
Socket.cs
Quelle:
Socket.cs

Beendet ein ausstehendes asynchrones Senden.

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

Parameter

asyncResult
IAsyncResult

Ein IAsyncResult Objekt, das Statusinformationen für diesen asynchronen Vorgang speichert.

Gibt zurück

Bei erfolgreicher Ausführung wird die Anzahl der an den Socket; gesendeten Bytes andernfalls ein ungültiger Socket Fehler zurückgegeben.

Ausnahmen

asyncResult ist null.

asyncResult wurde nicht von einem Aufruf der BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) Methode zurückgegeben.

EndSend(IAsyncResult) wurde zuvor für das asynchrone Senden aufgerufen.

Beim Versuch, auf den Socket zuzugreifen, ist ein Fehler aufgetreten.

- oder -

.NET 7+ nur: Die Socket Datei wurde geschlossen.

.NET Framework, .NET Core und .NET 5-6: Die Socket Datei wurde geschlossen.

Hinweise

Von Bedeutung

Dies ist eine Kompatibilitäts-API. Es wird nicht empfohlen, die Methoden APM (Begin* und End*) für die neue Entwicklung zu verwenden. Verwenden Sie stattdessen die Task-basierten Entsprechungen.

EndSend schließt den Vorgang ab, der von BeginSend. Sie müssen den IAsyncResult vom übereinstimmenden BeginSend Aufruf erstellten Übergeben.

Wenn Sie ein verbindungsloses Protokoll verwenden, wird blockiert, EndSend bis das Datagramm gesendet wird. Wenn Sie ein verbindungsorientiertes Protokoll verwenden, wird blockiert, EndSend bis ein Teil des Puffers gesendet wurde. Wenn der Rückgabewert EndSend angibt, dass der Puffer nicht vollständig gesendet wurde, rufen Sie die BeginSend Methode erneut auf, und ändern Sie den Puffer so, dass die nicht gesendeten Daten enthalten sind.

Es besteht keine Garantie dafür, dass die gesendeten Daten sofort im Netzwerk angezeigt werden. Um die Netzwerkeffizienz zu erhöhen, kann das zugrunde liegende System die Übertragung verzögern, bis eine erhebliche Menge ausgehender Daten gesammelt wird. Ein erfolgreicher Abschluss der BeginSend Methode bedeutet, dass das zugrunde liegende System Platz zum Puffern der Daten für ein Netzwerk-Senden hatte.

Hinweis

Wenn Sie ein SocketExceptionObjekt erhalten, verwenden Sie die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode abzurufen.

Hinweis

Alle von einem bestimmten Thread initiierten E/A-Vorgänge werden abgebrochen, wenn dieser Thread beendet wird. Ein ausstehender asynchroner Vorgang kann fehlschlagen, wenn der Thread beendet wird, bevor der Vorgang abgeschlossen wird.

Hinweis

Der erfolgreiche Abschluss einer Übermittlung weist nicht darauf hin, dass die Daten erfolgreich übermittelt wurden. Wenn kein Pufferspeicher im Transportsystem verfügbar ist, um die zu übertragenden Daten zu halten, wird das Senden blockiert, es sei denn, der Socket wurde im Nichtblockingmodus platziert.

Hinweis

Dieses Mitglied gibt Protokollierungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in Ihrer Anwendung aktivieren. Weitere Informationen finden Sie unter Network Tracing in .NET Framework.

Weitere Informationen

Gilt für:

EndSend(IAsyncResult, SocketError)

Quelle:
Socket.cs
Quelle:
Socket.cs
Quelle:
Socket.cs
Quelle:
Socket.cs
Quelle:
Socket.cs

Beendet ein ausstehendes asynchrones Senden.

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

Parameter

asyncResult
IAsyncResult

Ein IAsyncResult Objekt, das Statusinformationen für diesen asynchronen Vorgang speichert.

errorCode
SocketError

Ein SocketError Objekt, das den Socketfehler speichert.

Gibt zurück

Bei erfolgreicher Ausführung wird die Anzahl der an den Socket; gesendeten Bytes andernfalls ein ungültiger Socket Fehler zurückgegeben.

Ausnahmen

asyncResult ist null.

asyncResult wurde nicht von einem Aufruf der BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) Methode zurückgegeben.

EndSend(IAsyncResult) wurde zuvor für das asynchrone Senden aufgerufen.

Beim Versuch, auf den Socket zuzugreifen, ist ein Fehler aufgetreten.

- oder -

.NET 7+ nur: Die Socket Datei wurde geschlossen.

.NET Framework, .NET Core und .NET 5-6: Die Socket Datei wurde geschlossen.

Hinweise

Von Bedeutung

Dies ist eine Kompatibilitäts-API. Es wird nicht empfohlen, die Methoden APM (Begin* und End*) für die neue Entwicklung zu verwenden. Verwenden Sie stattdessen die Task-basierten Entsprechungen.

EndSend schließt den Vorgang ab, der von BeginSend. Sie müssen den IAsyncResult vom übereinstimmenden BeginSend Aufruf erstellten Übergeben.

Wenn Sie ein verbindungsloses Protokoll verwenden, wird blockiert, EndSend bis das Datagramm gesendet wird. Wenn Sie ein verbindungsorientiertes Protokoll verwenden, wird blockiert, EndSend bis ein Teil des Puffers gesendet wurde. Wenn der Rückgabewert EndSend angibt, dass der Puffer nicht vollständig gesendet wurde, rufen Sie die BeginSend Methode erneut auf, und ändern Sie den Puffer so, dass die nicht gesendeten Daten enthalten sind.

Es besteht keine Garantie dafür, dass die gesendeten Daten sofort im Netzwerk angezeigt werden. Um die Netzwerkeffizienz zu erhöhen, kann das zugrunde liegende System die Übertragung verzögern, bis eine erhebliche Menge ausgehender Daten gesammelt wird. Ein erfolgreicher Abschluss der BeginSend Methode bedeutet, dass das zugrunde liegende System Platz zum Puffern der Daten für ein Netzwerk-Senden hatte.

Hinweis

Wenn Sie ein SocketExceptionObjekt erhalten, verwenden Sie die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode abzurufen.

Hinweis

Alle von einem bestimmten Thread initiierten E/A-Vorgänge werden abgebrochen, wenn dieser Thread beendet wird. Ein ausstehender asynchroner Vorgang kann fehlschlagen, wenn der Thread beendet wird, bevor der Vorgang abgeschlossen wird.

Hinweis

Der erfolgreiche Abschluss einer Übermittlung weist nicht darauf hin, dass die Daten erfolgreich übermittelt wurden. Wenn kein Pufferspeicher im Transportsystem verfügbar ist, um die zu übertragenden Daten zu halten, wird das Senden blockiert, es sei denn, der Socket wurde im Nichtblockingmodus platziert.

Hinweis

Dieses Mitglied gibt Protokollierungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in Ihrer Anwendung aktivieren. Weitere Informationen finden Sie unter Network Tracing in .NET Framework.

Weitere Informationen

Gilt für: