Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Socket.EndSendTo-Methode: (IAsyncResult)

 

Veröffentlicht: Oktober 2016

Beendet einen ausstehenden asynchronen Sendevorgang an einem bestimmten Speicherort.

Namespace:   System.Net.Sockets
Assembly:  System (in System.dll)

public int EndSendTo(
	IAsyncResult asyncResult
)

Parameter

asyncResult
Type: System.IAsyncResult

Ein IAsyncResult Statusinformationen und benutzerdefinierte Daten für diesen asynchronen Vorgang speichert.

Rückgabewert

Type: System.Int32

Wenn erfolgreich, die Anzahl der Bytes gesendet. andernfalls ein ungültiger Socket Fehler.

Exception Condition
ArgumentNullException

asyncResult ist null.

ArgumentException

asyncResult wurde nicht durch einen Aufruf von zurückgegeben, die BeginSendTo Methode.

InvalidOperationException

EndSendTo wurde bereits für den asynchronen Sendevorgang aufgerufen.

SocketException

Fehler beim Versuch, auf den Socket zuzugreifen. Weitere Informationen finden Sie im Abschnitt Hinweise.

ObjectDisposedException

Der Socket wurde geschlossen.

EndSendTo beendet den asynchronen Sendevorgang gestartet BeginSendTo.

Vor dem Aufruf von BeginSendTo, müssen Sie eine Rückrufmethode erstellen, die implementiert die AsyncCallback delegieren. Diese Rückrufmethode wird in einem separaten Thread ausgeführt und vom System nach aufgerufen BeginReceive zurückgibt. Die Rückrufmethode muss akzeptieren die IAsyncResult zurückgegebene der BeginSendTo -Methode als Parameter.

Rufen Sie in der Rückrufmethode die AsyncState Methode der IAsyncResult Parameter zum Abrufen des Sendens Socket. Nach dem Erhalt der Socket, rufen Sie die EndSendTo -Methode erfolgreich der Sendevorgang abzuschließen und die Anzahl der gesendeten Bytes zurück.

Wenn Sie ein verbindungsloses Protokoll, arbeiten EndSendTo blockiert, bis das Datagramm gesendet wurde. Wenn Sie ein verbindungsorientiertes Protokoll verwenden EndSendTo blockiert, bis die angeforderte Anzahl von Bytes gesendet werden. Es gibt keine Garantie, die die gesendeten Daten sofort im Netzwerk angezeigt werden. Um die Netzwerkeffizienz zu steigern, kann eine des zugrunde liegenden Systems Übertragung Verzögerung, bis eine bedeutende Menge ausgehender Daten gesammelt wurde. Ein erfolgreicher Abschluss des der BeginSendTo Methode bedeutet, dass der zugrunde liegende Systemtyp des Arbeitsbereichs Puffer hatte Daten für ein Netzwerk gesendet werden.

System_CAPS_noteHinweis

Erhalten Sie eine SocketException, verwenden Sie die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode zu erhalten. Nachdem Sie diesen Code erhalten haben, finden Sie in der Windows Sockets-Version 2-API-Fehler-Code-Dokumentation in der MSDN Library für eine ausführliche Beschreibung des Fehlers.

System_CAPS_noteHinweis

Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren. Weitere Informationen finden Sie unter Netzwerkablaufverfolgung in .NET Framework.

Im folgenden Codebeispiel wird einen asynchronen Sendevorgang an einen bestimmten Speicherort beendet.

StateObject so = (StateObject) ar.AsyncState;
Socket s = so.workSocket;

int send = s.EndSendTo(ar);

      Console.WriteLine("The size of the message sent was :" + send.ToString());

s.Close();

.NET Framework
Verfügbar seit 1.1
Zurück zum Anfang
Anzeigen: