Socket.ConnectAsync Methode

Definition

Beginnt eine asynchrone Anforderung einer Verbindung mit einem Remotehost.

Überlädt

ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs)

Beginnt eine asynchrone Anforderung einer Verbindung mit einem Remotehost.

ConnectAsync(IPAddress[], Int32, CancellationToken)

Stellt eine Verbindung mit einem Remotehost her.

ConnectAsync(String, Int32, CancellationToken)

Stellt eine Verbindung mit einem Remotehost her.

ConnectAsync(IPAddress, Int32, CancellationToken)

Stellt eine Verbindung mit einem Remotehost her.

ConnectAsync(String, Int32)

Stellt eine Verbindung mit einem Remotehost her.

ConnectAsync(IPAddress[], Int32)

Stellt eine Verbindung mit einem Remotehost her.

ConnectAsync(IPAddress, Int32)

Stellt eine Verbindung mit einem Remotehost her.

ConnectAsync(EndPoint, CancellationToken)

Stellt eine Verbindung mit einem Remotehost her.

ConnectAsync(SocketAsyncEventArgs)

Beginnt eine asynchrone Anforderung einer Verbindung mit einem Remotehost.

ConnectAsync(EndPoint)

Stellt eine Verbindung mit einem Remotehost her.

ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs)

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

Beginnt eine asynchrone Anforderung einer Verbindung mit einem Remotehost.

public:
 static bool ConnectAsync(System::Net::Sockets::SocketType socketType, System::Net::Sockets::ProtocolType protocolType, System::Net::Sockets::SocketAsyncEventArgs ^ e);
public static bool ConnectAsync (System.Net.Sockets.SocketType socketType, System.Net.Sockets.ProtocolType protocolType, System.Net.Sockets.SocketAsyncEventArgs e);
static member ConnectAsync : System.Net.Sockets.SocketType * System.Net.Sockets.ProtocolType * System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Shared Function ConnectAsync (socketType As SocketType, protocolType As ProtocolType, e As SocketAsyncEventArgs) As Boolean

Parameter

socketType
SocketType

Einer der SocketType-Werte.

protocolType
ProtocolType

Einer der ProtocolType-Werte.

e
SocketAsyncEventArgs

Das SocketAsyncEventArgs-Objekt, das für diesen asynchronen Socketvorgang verwendet werden soll.

Gibt zurück

true, wenn der E/A-Vorgang aussteht. Das Completed-Ereignis für den e-Parameter wird nach dem Abschluss des Vorgangs ausgelöst.

false, wenn der E/A-Vorgang synchron abgeschlossen wurde. In diesem Fall wird das Completed-Ereignis für den e-Parameter nicht ausgelöst, und das als Parameter übergebene e-Objekt kann direkt nach der Rückgabe des Methodenaufrufs untersucht werden, um die Ergebnisse des Vorgangs abzurufen.

Ausnahmen

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

Der e-Parameter kann nicht NULL und der RemoteEndPoint kann nicht NULL sein.

Der Socket führt eine Überwachung durch, oder ein Socketvorgang wird bereits mit dem im e-Parameter angegebenen SocketAsyncEventArgs-Objekt ausgeführt.

Fehler beim Versuch, auf den Socket zuzugreifen.

Der lokale Endpunkt und der RemoteEndPoint sind nicht die gleiche Adressfamilie.

Der Socket wurde geschlossen.

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

Hinweise

Wenn Sie ein verbindungsorientiertes Protokoll verwenden, startet die M:System.Net.Sockets.Socket.ConnectAsync(System.Net.Sockets.SocketType,System.Net.Sockets.ProtocolType,System.Net.Sockets.SocketAsyncEventArgs)-Methode eine asynchrone Anforderung für eine Verbindung mit dem Remotehost. Wenn Sie ein verbindungsloses Protokoll verwenden, wird ein Standard-Remotehost eingerichtet, ConnectAsync der durch die socketType Parameter und protocolType angegeben wird.

Um über den Abschluss benachrichtigt zu werden, müssen Sie eine Rückrufmethode erstellen, die den EventHandler<SocketAsyncEventArgs-Delegaten> implementiert, und den Rückruf an das SocketAsyncEventArgs.Completed Ereignis anfügen.

Der Aufrufer muss die SocketAsyncEventArgs.RemoteEndPoint -Eigenschaft auf den des Remotehosts festlegen, mit dem IPEndPoint eine Verbindung hergestellt werden soll.

Der Aufrufer kann die SocketAsyncEventArgs.UserToken -Eigenschaft auf ein beliebiges Benutzerzustandsobjekt festlegen, bevor die ConnectAsync -Methode aufgerufen wird, sodass die Informationen in der Rückrufmethode abgerufen werden können. Wenn der Rückruf mehr Informationen als ein einzelnes Objekt benötigt, kann eine kleine Klasse erstellt werden, die die anderen erforderlichen Zustandsinformationen als Member enthält.

Wenn Sie ein verbindungsloses Protokoll wie UDP verwenden, müssen Sie vor dem Senden und Empfangen von Daten nicht aufrufen ConnectAsync . Sie können und ReceiveFromAsync verwendenSendToAsync, um mit einem Remotehost zu kommunizieren. Wenn Sie aufrufen ConnectAsync, werden alle Datagramme verworfen, die von einer anderen Adresse als der angegebenen Standardadresse empfangen werden. Wenn Sie den Standard-Remotehost ändern möchten, rufen Sie die ConnectAsync -Methode erneut mit dem gewünschten Endpunkt auf.

Wenn Sie den Standard-Remotehost auf eine Broadcastadresse festlegen möchten, müssen Sie zuerst aufrufen SetSocketOption und Broadcast auf truefestlegen. Wenn dies nicht der Fall ist, löst die ConnectAsync -Methode einen aus SocketException.

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

Optional kann ein Puffer bereitgestellt werden, der atomar an den Socket gesendet wird, nachdem die ConnectAsync Methode erfolgreich war. In diesem Fall muss die SocketAsyncEventArgs.Buffer -Eigenschaft auf den Puffer festgelegt werden, der die zu sendenden Daten enthält, und die SocketAsyncEventArgs.Count -Eigenschaft muss auf die Anzahl der Daten festgelegt werden, die vom Puffer gesendet werden sollen. Sobald eine Verbindung hergestellt wurde, wird dieser Datenpuffer gesendet.

Wenn Sie ein verbindungsorientiertes Protokoll verwenden und vor dem Aufrufen ConnectAsyncnicht aufrufenBind, weist der zugrunde liegende Dienstanbieter die am besten geeignete lokale Netzwerkadresse und Portnummer zu.

Wenn Sie ein verbindungsloses Protokoll verwenden, weist der Dienstanbieter erst dann eine IP-Adresse und Portnummer des lokalen Netzwerks zu, wenn Sie die SendAsync Methoden oder ReceiveAsync aufrufen.

Die ConnectAsync -Methode löst aus NotSupportedException , wenn die Adressfamilie von Socket und nicht SocketAsyncEventArgs.RemoteEndPoint die gleiche Adressfamilie ist.

Hinweis

Wenn Sie beim Aufrufen dieser Methode eine SocketException erhalten, verwenden Sie die SocketException.ErrorCode -Eigenschaft, um den spezifischen Fehlercode abzurufen. Nachdem Sie diesen Code erhalten haben, finden Sie in der Dokumentation zu Windows Sockets Version 2-API-Fehlercode eine ausführliche Beschreibung des Fehlers.

Gilt für:

ConnectAsync(IPAddress[], Int32, CancellationToken)

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

Stellt eine Verbindung mit einem Remotehost her.

public:
 System::Threading::Tasks::ValueTask ConnectAsync(cli::array <System::Net::IPAddress ^> ^ addresses, int port, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.ValueTask ConnectAsync (System.Net.IPAddress[] addresses, int port, System.Threading.CancellationToken cancellationToken);
member this.ConnectAsync : System.Net.IPAddress[] * int * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask
Public Function ConnectAsync (addresses As IPAddress(), port As Integer, cancellationToken As CancellationToken) As ValueTask

Parameter

addresses
IPAddress[]

Eine Liste der IPAddresses für den Remotehost, der zum Herstellen einer Verbindung mit dem Remotehost verwendet wird.

port
Int32

Der Port auf dem Remotehost, mit dem eine Verbindung hergestellt werden soll.

cancellationToken
CancellationToken

Ein Abbruchtoken, das zum Abbrechen des asynchronen Vorgangs verwendet werden kann.

Gibt zurück

Eine asynchrone Aufgabe, die abgeschlossen wird, wenn die Verbindung hergestellt wird.

Ausnahmen

Der addresses-Parameter darf nicht NULL sein.

Der addresses Parameter darf kein leeres Array sein.

port ist kleiner als MinPort.

- oder -

port ist größer als MaxPort.

Der Socket ist nicht in der InterNetwork - oder InterNetworkV6 -Familie vorhanden.

Fehler beim Versuch, auf den Socket zuzugreifen.

Der Socket wurde geschlossen.

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

Das Abbruchtoken wurde abgebrochen. Diese Ausnahme wird in der zurückgegebenen Aufgabe gespeichert.

Hinweise

Diese Methode speichert in der Aufgabe, die alle Nichtverwendungsausnahmen zurückgibt, die die synchrone Entsprechung der Methode auslösen kann. Wenn eine Ausnahme in der zurückgegebenen Aufgabe gespeichert wird, wird diese Ausnahme ausgelöst, wenn die Aufgabe erwartet wird. Verwendungsausnahmen wie ArgumentExceptionwerden weiterhin synchron ausgelöst. Informationen zu den gespeicherten Ausnahmen finden Sie unter ausnahmen, die von ausgelöst werden Connect(IPAddress[], Int32).

Gilt für:

ConnectAsync(String, Int32, CancellationToken)

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

Stellt eine Verbindung mit einem Remotehost her.

public:
 System::Threading::Tasks::ValueTask ConnectAsync(System::String ^ host, int port, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.ValueTask ConnectAsync (string host, int port, System.Threading.CancellationToken cancellationToken);
member this.ConnectAsync : string * int * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask
Public Function ConnectAsync (host As String, port As Integer, cancellationToken As CancellationToken) As ValueTask

Parameter

host
String

Der Hostname des Remotehosts, mit dem eine Verbindung hergestellt werden soll.

port
Int32

Der Port auf dem Remotehost, mit dem eine Verbindung hergestellt werden soll.

cancellationToken
CancellationToken

Ein Abbruchtoken, das zum Abbrechen des asynchronen Vorgangs verwendet werden kann.

Gibt zurück

Eine asynchrone Aufgabe, die abgeschlossen wird, wenn die Verbindung hergestellt wird.

Ausnahmen

Der host-Parameter darf nicht NULL sein.

port ist kleiner als MinPort.

- oder -

port ist größer als MaxPort.

Der Socket ist nicht in der InterNetwork - oder InterNetworkV6 -Familie vorhanden.

Fehler beim Versuch, auf den Socket zuzugreifen.

Der Socket wurde geschlossen.

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

Das Abbruchtoken wurde abgebrochen. Diese Ausnahme wird in der zurückgegebenen Aufgabe gespeichert.

Hinweise

Diese Methode speichert in der Aufgabe, die alle Nichtverwendungsausnahmen zurückgibt, die die synchrone Entsprechung der Methode auslösen kann. Wenn eine Ausnahme in der zurückgegebenen Aufgabe gespeichert wird, wird diese Ausnahme ausgelöst, wenn die Aufgabe erwartet wird. Verwendungsausnahmen wie ArgumentExceptionwerden weiterhin synchron ausgelöst. Informationen zu den gespeicherten Ausnahmen finden Sie unter ausnahmen, die von ausgelöst werden Connect(String, Int32).

Gilt für:

ConnectAsync(IPAddress, Int32, CancellationToken)

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

Stellt eine Verbindung mit einem Remotehost her.

public:
 System::Threading::Tasks::ValueTask ConnectAsync(System::Net::IPAddress ^ address, int port, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.ValueTask ConnectAsync (System.Net.IPAddress address, int port, System.Threading.CancellationToken cancellationToken);
member this.ConnectAsync : System.Net.IPAddress * int * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask
Public Function ConnectAsync (address As IPAddress, port As Integer, cancellationToken As CancellationToken) As ValueTask

Parameter

address
IPAddress

Die IPAddress des Remotehosts, mit dem eine Verbindung hergestellt werden soll.

port
Int32

Der Port auf dem Remotehost, mit dem eine Verbindung hergestellt werden soll.

cancellationToken
CancellationToken

Ein Abbruchtoken, das zum Abbrechen des asynchronen Vorgangs verwendet werden kann.

Gibt zurück

Eine asynchrone Aufgabe, die abgeschlossen wird, wenn die Verbindung hergestellt wird.

Ausnahmen

Der address-Parameter darf nicht NULL sein.

port ist kleiner als MinPort.

- oder -

port ist größer als MaxPort.

Fehler beim Versuch, auf den Socket zuzugreifen.

Der Socket wurde geschlossen.

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

Das Abbruchtoken wurde abgebrochen. Diese Ausnahme wird in der zurückgegebenen Aufgabe gespeichert.

Hinweise

Diese Methode speichert in der Aufgabe, die alle Nichtverwendungsausnahmen zurückgibt, die die synchrone Entsprechung der Methode auslösen kann. Wenn eine Ausnahme in der zurückgegebenen Aufgabe gespeichert wird, wird diese Ausnahme ausgelöst, wenn die Aufgabe erwartet wird. Verwendungsausnahmen wie ArgumentExceptionwerden weiterhin synchron ausgelöst. Informationen zu den gespeicherten Ausnahmen finden Sie unter ausnahmen, die von ausgelöst werden Connect(IPAddress, Int32).

Gilt für:

ConnectAsync(String, Int32)

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

Stellt eine Verbindung mit einem Remotehost her.

public:
 System::Threading::Tasks::Task ^ ConnectAsync(System::String ^ host, int port);
public System.Threading.Tasks.Task ConnectAsync (string host, int port);
member this.ConnectAsync : string * int -> System.Threading.Tasks.Task
Public Function ConnectAsync (host As String, port As Integer) As Task

Parameter

host
String

Der Hostname des Remotehosts, mit dem eine Verbindung hergestellt werden soll.

port
Int32

Der Port auf dem Remotehost, mit dem eine Verbindung hergestellt werden soll.

Gibt zurück

Eine asynchrone Aufgabe, die abgeschlossen wird, wenn die Verbindung hergestellt wird.

Ausnahmen

Der host-Parameter darf nicht NULL sein.

port ist kleiner als MinPort.

- oder -

port ist größer als MaxPort.

Der Socket ist nicht in der InterNetwork - oder InterNetworkV6 -Familie vorhanden.

Fehler beim Versuch, auf den Socket zuzugreifen.

Der Socket wurde geschlossen.

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

Hinweise

Diese Methode speichert in der Aufgabe, die alle Nichtverwendungsausnahmen zurückgibt, die die synchrone Entsprechung der Methode auslösen kann. Wenn eine Ausnahme in der zurückgegebenen Aufgabe gespeichert wird, wird diese Ausnahme ausgelöst, wenn die Aufgabe erwartet wird. Verwendungsausnahmen wie ArgumentExceptionwerden weiterhin synchron ausgelöst. Informationen zu den gespeicherten Ausnahmen finden Sie unter ausnahmen, die von ausgelöst werden Connect(String, Int32).

Gilt für:

ConnectAsync(IPAddress[], Int32)

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

Stellt eine Verbindung mit einem Remotehost her.

public:
 System::Threading::Tasks::Task ^ ConnectAsync(cli::array <System::Net::IPAddress ^> ^ addresses, int port);
public System.Threading.Tasks.Task ConnectAsync (System.Net.IPAddress[] addresses, int port);
member this.ConnectAsync : System.Net.IPAddress[] * int -> System.Threading.Tasks.Task
Public Function ConnectAsync (addresses As IPAddress(), port As Integer) As Task

Parameter

addresses
IPAddress[]

Eine Liste der IPAddresses für den Remotehost, der zum Herstellen einer Verbindung mit dem Remotehost verwendet wird.

port
Int32

Der Port auf dem Remotehost, mit dem eine Verbindung hergestellt werden soll.

Gibt zurück

Eine asynchrone Aufgabe, die abgeschlossen wird, wenn die Verbindung hergestellt wird.

Ausnahmen

Der addresses-Parameter darf nicht NULL sein.

Der addresses Parameter darf kein leeres Array sein.

port ist kleiner als MinPort.

- oder -

port ist größer als MaxPort.

Der Socket ist nicht in der InterNetwork - oder InterNetworkV6 -Familie vorhanden.

Fehler beim Versuch, auf den Socket zuzugreifen.

Der Socket wurde geschlossen.

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

Hinweise

Diese Methode speichert in der Aufgabe, die alle Nichtverwendungsausnahmen zurückgibt, die die synchrone Entsprechung der Methode auslösen kann. Wenn eine Ausnahme in der zurückgegebenen Aufgabe gespeichert wird, wird diese Ausnahme ausgelöst, wenn die Aufgabe erwartet wird. Verwendungsausnahmen wie ArgumentExceptionwerden weiterhin synchron ausgelöst. Informationen zu den gespeicherten Ausnahmen finden Sie unter ausnahmen, die von ausgelöst werden Connect(IPAddress[], Int32).

Gilt für:

ConnectAsync(IPAddress, Int32)

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

Stellt eine Verbindung mit einem Remotehost her.

public:
 System::Threading::Tasks::Task ^ ConnectAsync(System::Net::IPAddress ^ address, int port);
public System.Threading.Tasks.Task ConnectAsync (System.Net.IPAddress address, int port);
member this.ConnectAsync : System.Net.IPAddress * int -> System.Threading.Tasks.Task
Public Function ConnectAsync (address As IPAddress, port As Integer) As Task

Parameter

address
IPAddress

Die IPAddress des Remotehosts, mit dem eine Verbindung hergestellt werden soll.

port
Int32

Der Port auf dem Remotehost, mit dem eine Verbindung hergestellt werden soll.

Gibt zurück

Eine asynchrone Aufgabe, die abgeschlossen wird, wenn die Verbindung hergestellt wird.

Ausnahmen

Der address-Parameter darf nicht NULL sein.

port ist kleiner als MinPort.

- oder -

port ist größer als MaxPort.

Der Socket ist nicht in der InterNetwork - oder InterNetworkV6 -Familie vorhanden.

Fehler beim Versuch, auf den Socket zuzugreifen.

Der Socket wurde geschlossen.

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

Hinweise

Diese Methode speichert in der Aufgabe, die alle Nichtverwendungsausnahmen zurückgibt, die die synchrone Entsprechung der Methode auslösen kann. Wenn eine Ausnahme in der zurückgegebenen Aufgabe gespeichert wird, wird diese Ausnahme ausgelöst, wenn die Aufgabe erwartet wird. Verwendungsausnahmen wie ArgumentExceptionwerden weiterhin synchron ausgelöst. Informationen zu den gespeicherten Ausnahmen finden Sie unter ausnahmen, die von ausgelöst werden Connect(IPAddress, Int32).

Gilt für:

ConnectAsync(EndPoint, CancellationToken)

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

Stellt eine Verbindung mit einem Remotehost her.

public:
 System::Threading::Tasks::ValueTask ConnectAsync(System::Net::EndPoint ^ remoteEP, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.ValueTask ConnectAsync (System.Net.EndPoint remoteEP, System.Threading.CancellationToken cancellationToken);
member this.ConnectAsync : System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask
Public Function ConnectAsync (remoteEP As EndPoint, cancellationToken As CancellationToken) As ValueTask

Parameter

remoteEP
EndPoint

Der Endpunkt, mit dem eine Verbindung hergestellt werden soll.

cancellationToken
CancellationToken

Ein Abbruchtoken, das zum Abbrechen des asynchronen Vorgangs verwendet werden kann.

Gibt zurück

Eine asynchrone Aufgabe, die abgeschlossen wird, wenn die Verbindung hergestellt wird.

Ausnahmen

Der remoteEP-Parameter darf nicht NULL sein.

Fehler beim Versuch, auf den Socket zuzugreifen.

Der lokale Endpunkt und der remoteEP Parameter sind nicht die gleiche Adressfamilie.

Der Socket wurde geschlossen.

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

Das Abbruchtoken wurde abgebrochen. Diese Ausnahme wird in der zurückgegebenen Aufgabe gespeichert.

Hinweise

Diese Methode speichert in der Aufgabe, die alle Nichtverwendungsausnahmen zurückgibt, die die synchrone Entsprechung der Methode auslösen kann. Wenn eine Ausnahme in der zurückgegebenen Aufgabe gespeichert wird, wird diese Ausnahme ausgelöst, wenn die Aufgabe erwartet wird. Verwendungsausnahmen wie ArgumentExceptionwerden weiterhin synchron ausgelöst. Informationen zu den gespeicherten Ausnahmen finden Sie unter ausnahmen, die von ausgelöst werden Connect(EndPoint).

Gilt für:

ConnectAsync(SocketAsyncEventArgs)

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

Beginnt eine asynchrone Anforderung einer Verbindung mit einem Remotehost.

public:
 bool ConnectAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool ConnectAsync (System.Net.Sockets.SocketAsyncEventArgs e);
member this.ConnectAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function ConnectAsync (e As SocketAsyncEventArgs) As Boolean

Parameter

e
SocketAsyncEventArgs

Das SocketAsyncEventArgs-Objekt, das für diesen asynchronen Socketvorgang verwendet werden soll.

Gibt zurück

true, wenn der E/A-Vorgang aussteht. Das Completed-Ereignis für den e-Parameter wird nach dem Abschluss des Vorgangs ausgelöst.

false, wenn der E/A-Vorgang synchron abgeschlossen wurde. In diesem Fall wird das Completed-Ereignis für den e-Parameter nicht ausgelöst, und das als Parameter übergebene e-Objekt kann direkt nach der Rückgabe des Methodenaufrufs untersucht werden, um die Ergebnisse des Vorgangs abzurufen.

Ausnahmen

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

Der e-Parameter kann nicht NULL und der RemoteEndPoint kann nicht NULL sein.

Der Socket führt eine Überwachung durch, oder ein Socketvorgang wird bereits mit dem im e-Parameter angegebenen SocketAsyncEventArgs-Objekt ausgeführt.

Fehler beim Versuch, auf den Socket zuzugreifen.

Der lokale Endpunkt und der RemoteEndPoint sind nicht die gleiche Adressfamilie.

Der Socket wurde geschlossen.

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

Hinweise

Wenn Sie ein verbindungsorientiertes Protokoll verwenden, startet die ConnectAsync Methode eine asynchrone Anforderung für eine Verbindung mit dem Remotehost. Wenn Sie ein verbindungsloses Protokoll verwenden, ConnectAsync wird ein Standard-Remotehost eingerichtet.

Um über den Abschluss benachrichtigt zu werden, müssen Sie eine Rückrufmethode erstellen, die den EventHandler<SocketAsyncEventArgs-Delegaten> implementiert, und den Rückruf an das SocketAsyncEventArgs.Completed Ereignis anfügen.

Der Aufrufer muss die SocketAsyncEventArgs.RemoteEndPoint -Eigenschaft auf den des Remotehosts festlegen, mit dem IPEndPoint eine Verbindung hergestellt werden soll.

Der Aufrufer kann die SocketAsyncEventArgs.UserToken -Eigenschaft auf ein beliebiges Benutzerzustandsobjekt festlegen, bevor die ConnectAsync -Methode aufgerufen wird, sodass die Informationen in der Rückrufmethode abgerufen werden können. Wenn der Rückruf mehr Informationen als ein einzelnes Objekt benötigt, kann eine kleine Klasse erstellt werden, die die anderen erforderlichen Zustandsinformationen als Member enthält.

Wenn Sie ein verbindungsloses Protokoll wie UDP verwenden, müssen Sie vor dem Senden und Empfangen von Daten nicht aufrufen ConnectAsync . Sie können und ReceiveFromAsync verwendenSendToAsync, um mit einem Remotehost zu kommunizieren. Wenn Sie aufrufen ConnectAsync, werden alle Datagramme verworfen, die von einer anderen Adresse als der angegebenen Standardadresse empfangen werden. Wenn Sie den Standard-Remotehost ändern möchten, rufen Sie die ConnectAsync -Methode erneut mit dem gewünschten Endpunkt auf.

Wenn Sie den Standard-Remotehost auf eine Broadcastadresse festlegen möchten, müssen Sie zuerst aufrufen SetSocketOption und Broadcast auf truefestlegen. Wenn dies nicht der Fall ist, löst die ConnectAsync -Methode einen aus SocketException.

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

Optional kann ein Puffer bereitgestellt werden, der atomar an den Socket gesendet wird, nachdem die ConnectAsync Methode erfolgreich war. In diesem Fall muss die SocketAsyncEventArgs.Buffer -Eigenschaft auf den Puffer festgelegt werden, der die zu sendenden Daten enthält, und die SocketAsyncEventArgs.Count -Eigenschaft muss auf die Anzahl der Daten festgelegt werden, die vom Puffer gesendet werden sollen. Sobald eine Verbindung hergestellt wurde, wird dieser Datenpuffer gesendet.

Wenn Sie ein verbindungsorientiertes Protokoll verwenden und vor dem Aufrufen ConnectAsyncnicht aufrufenBind, weist der zugrunde liegende Dienstanbieter die am besten geeignete lokale Netzwerkadresse und Portnummer zu.

Wenn Sie ein verbindungsloses Protokoll verwenden, weist der Dienstanbieter erst dann eine IP-Adresse und Portnummer des lokalen Netzwerks zu, wenn Sie die SendAsync Methoden oder ReceiveAsync aufrufen.

Die ConnectAsync -Methode löst aus NotSupportedException , wenn die Adressfamilie von Socket und nicht SocketAsyncEventArgs.RemoteEndPoint die gleiche Adressfamilie ist.

Hinweis

Wenn Sie beim Aufrufen dieser Methode eine SocketException erhalten, verwenden Sie die SocketException.ErrorCode -Eigenschaft, um den spezifischen Fehlercode abzurufen. Nachdem Sie diesen Code erhalten haben, finden Sie in der Dokumentation zu Windows Sockets Version 2-API-Fehlercode eine ausführliche Beschreibung des Fehlers.

Weitere Informationen

Gilt für:

ConnectAsync(EndPoint)

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

Stellt eine Verbindung mit einem Remotehost her.

public:
 System::Threading::Tasks::Task ^ ConnectAsync(System::Net::EndPoint ^ remoteEP);
public System.Threading.Tasks.Task ConnectAsync (System.Net.EndPoint remoteEP);
member this.ConnectAsync : System.Net.EndPoint -> System.Threading.Tasks.Task
Public Function ConnectAsync (remoteEP As EndPoint) As Task

Parameter

remoteEP
EndPoint

Der Endpunkt, mit dem eine Verbindung hergestellt werden soll.

Gibt zurück

Eine asynchrone Aufgabe, die abgeschlossen wird, wenn die Verbindung hergestellt wird.

Ausnahmen

Der remoteEP-Parameter darf nicht NULL sein.

Fehler beim Versuch, auf den Socket zuzugreifen.

Der lokale Endpunkt und der remoteEP Parameter sind nicht die gleiche Adressfamilie.

Der Socket wurde geschlossen.

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

Hinweise

Diese Methode speichert in der Aufgabe, die alle Nichtverwendungsausnahmen zurückgibt, die die synchrone Entsprechung der Methode auslösen kann. Wenn eine Ausnahme in der zurückgegebenen Aufgabe gespeichert wird, wird diese Ausnahme ausgelöst, wenn die Aufgabe erwartet wird. Verwendungsausnahmen wie ArgumentExceptionwerden weiterhin synchron ausgelöst. Informationen zu den gespeicherten Ausnahmen finden Sie unter ausnahmen, die von ausgelöst werden Connect(EndPoint).

Gilt für: