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.ConnectAsync-Methode: (SocketAsyncEventArgs)

 

Veröffentlicht: Oktober 2016

Beginnt eine asynchrone Anforderung für eine Verbindung mit einem Remotehost.

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

public bool ConnectAsync(
	SocketAsyncEventArgs e
)

Parameter

e
Type: System.Net.Sockets.SocketAsyncEventArgs

Das System.Net.Sockets.SocketAsyncEventArgs Objekt, das für diesen asynchronen Socketvorgang verwendet.

Rückgabewert

Type: System.Boolean

Gibt true wenn der e/a-Vorgang aussteht. Das SocketAsyncEventArgs.Completed -Ereignis auf der e -Parameter wird nach dem Abschluss des Vorgangs ausgelöst.

Gibt false Wenn der e/a-Vorgang synchron abgeschlossen wurde. In diesem Fall die SocketAsyncEventArgs.Completed -Ereignis auf der e Parameter wird nicht ausgelöst, und die e -Objekt übergeben, wie ein Parameter untersucht werden kann, sofort nach dem Aufruf der Methode zurückgegeben wird, um die Ergebnisse des Vorgangs abzurufen.

Exception Condition
ArgumentException

Ein Argument ist ungültig. Diese Ausnahme tritt auf, wenn mehrere Puffer angegeben werden, die SocketAsyncEventArgs.BufferList -Eigenschaft ist nicht null.

ArgumentNullException

Die e Parameter darf nicht null sein und die SocketAsyncEventArgs.RemoteEndPoint darf nicht null sein.

InvalidOperationException

Die Socket ist empfangsbereit oder bei einem Socketvorgang war bereits in Bearbeitung der System.Net.Sockets.SocketAsyncEventArgs im angegebenen Objekt der e Parameter.

SocketException

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

NotSupportedException

Windows XP oder höher ist für diese Methode erforderlich. Diese Ausnahme tritt auch auf, wenn der lokale Endpunkt und der SocketAsyncEventArgs.RemoteEndPoint sind nicht identisch.

ObjectDisposedException

Der Socket wurde geschlossen.

SecurityException

Ein höher in der Aufrufliste befindlicher Aufrufer verfügt nicht über die Berechtigung für den angeforderten Vorgang.

Wenn Sie ein verbindungsorientiertes Protokoll verwenden, werden die ConnectAsync -Methode startet eine asynchrone Anforderung für eine Verbindung zum remote-Host. Wenn Sie ein verbindungsloses Protokoll, arbeiten ConnectAsync stellt einen Remotehost her.

Zum Abschluss benachrichtigt werden, müssen Sie eine Rückrufmethode, implementiert den EventHandler < SocketAsyncEventArgs > delegieren, und fügen Sie den Rückruf zum Erstellen der SocketAsyncEventArgs.Completed Ereignis.

Der Aufrufer muss Festlegen der SocketAsyncEventArgs.RemoteEndPoint Eigenschaft, um die IPEndPoint des Remotehosts für die Verbindung.

Der Aufrufer kann festlegen, die SocketAsyncEventArgs.UserToken Eigenschaft, um alle Benutzerzustandsobjekt vor dem Aufruf der ConnectAsync -Methode, damit die Informationen in der Rückrufmethode aufgerufen werden können. Wenn der Rückruf mehr Informationen als ein einzelnes Objekt benötigt, kann eine kleine Klasse erstellt werden, um die anderen erforderlichen Zustandsinformationen als Member enthalten.

Wenn Sie z. B. UDP ein verbindungsloses Protokoll verwenden, müssen Sie nicht aufrufen ConnectAsync vor dem Senden und Empfangen von Daten. Sie können SendToAsync und ReceiveFromAsync zur Kommunikation mit einem Remotehost. Wenn Sie aufrufen ConnectAsync, Datagramme, die von einer anderen als der angegebenen Standardadresse eingehen, werden verworfen. Wenn Sie den Remotehost ändern möchten, rufen Sie die ConnectAsync -Methode noch einmal mit dem gewünschten Endpunkt.

Wenn Sie den Remotehost auf eine Broadcastadresse festlegen möchten, müssen Sie zuerst Aufrufen SetSocketOption und Übertragung auf true. Wenn dies nicht erfolgt, die ConnectAsync Methode löst eine SocketException.

Die folgenden Eigenschaften und Ereignisse für das System.Net.Sockets.SocketAsyncEventArgs Objekt sind erforderlich:

Optional ein Puffer kann angegeben werden, der automatisch über den Socket gesendet wird die ConnectAsync -Methode erfolgreich ausgeführt wurde. In diesem Fall die SocketAsyncEventArgs.Buffer -Eigenschaft muss auf den Puffer mit Daten festgelegt werden, senden und die SocketAsyncEventArgs.Count -Eigenschaft muss auf die Anzahl der Bytes der Daten festgelegt werden, um aus dem Puffer zu senden. Sobald eine Verbindung hergestellt ist, wird dieser Puffer Daten gesendet.

Wenn Sie ein verbindungsorientiertes Protokoll, und rufen Sie Bind vor dem Aufruf von ConnectAsync, der zugrunde liegende Dienstanbieter weist die am besten geeignete lokale Netzwerk Adresse und Portnummer.

Wenn Sie ein verbindungsloses Protokoll verwenden, der Service Provider nicht weist eine lokale IP-Adresse und Anschlussnummer Netzwerknummer erst nach dem Aufruf der SendAsync oder ReceiveAsync Methoden.

Die ConnectAsync -Methode löst NotSupportedException Wenn die Adressfamilie des der Socket und SocketAsyncEventArgs.RemoteEndPoint sind nicht identisch.

System_CAPS_noteHinweis

Erhalten Sie eine SocketException Verwenden Sie beim Aufrufen dieser Methode 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.

Universelle Windows-Plattform
Verfügbar seit 10
.NET Framework
Verfügbar seit 2.0
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.1
Zurück zum Anfang
Anzeigen: