Socket.ConnectAsync Metódus

Definíció

Elindít egy aszinkron kérést egy távoli gazdagéphez való csatlakozáshoz.

Túlterhelések

Name Description
ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs, ConnectAlgorithm)
ConnectAsync(String, Int32, CancellationToken)

Kapcsolatot létesít egy távoli gazdagéppel.

ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs)

Elindít egy aszinkron kérést egy távoli gazdagéphez való csatlakozáshoz.

ConnectAsync(IPAddress[], Int32, CancellationToken)

Kapcsolatot létesít egy távoli gazdagéppel.

ConnectAsync(IPAddress, Int32, CancellationToken)

Kapcsolatot létesít egy távoli gazdagéppel.

ConnectAsync(String, Int32)

Kapcsolatot létesít egy távoli gazdagéppel.

ConnectAsync(IPAddress[], Int32)

Kapcsolatot létesít egy távoli gazdagéppel.

ConnectAsync(IPAddress, Int32)

Kapcsolatot létesít egy távoli gazdagéppel.

ConnectAsync(EndPoint, CancellationToken)

Kapcsolatot létesít egy távoli gazdagéppel.

ConnectAsync(SocketAsyncEventArgs)

Elindít egy aszinkron kérést egy távoli gazdagéphez való csatlakozáshoz.

ConnectAsync(EndPoint)

Kapcsolatot létesít egy távoli gazdagéppel.

ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs, ConnectAlgorithm)

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

Paraméterek

socketType
SocketType
protocolType
ProtocolType
connectAlgorithm
ConnectAlgorithm

Válaszok

A következőre érvényes:

ConnectAsync(String, Int32, CancellationToken)

Forrás:
Socket.Tasks.cs
Forrás:
Socket.Tasks.cs
Forrás:
Socket.Tasks.cs
Forrás:
Socket.Tasks.cs
Forrás:
Socket.Tasks.cs

Kapcsolatot létesít egy távoli gazdagéppel.

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

Paraméterek

host
String

A távoli gazdagép gazdaneve, amelyhez csatlakozni szeretne.

port
Int32

A távoli gazdagép portja, amelyhez csatlakozni szeretne.

cancellationToken
CancellationToken

Az aszinkron művelet megszakításához használható lemondási jogkivonat.

Válaszok

Egy aszinkron feladat, amely a kapcsolat létrehozásakor fejeződik be.

Kivételek

A host paraméter nem lehet null értékű.

port kisebb, mint MinPort.

-vagy-

port nagyobb, mint MaxPort.

A foglalat nincs a családban vagy InterNetwork a InterNetworkV6 családban.

Hiba történt a szoftvercsatorna elérésekor.

A Socket le van zárva.

A hívásverem magasabb hívói nem rendelkeznek engedéllyel a kért művelethez.

A lemondási jogkivonat megszakadt. Ezt a kivételt a rendszer a visszaadott tevékenységben tárolja.

Megjegyzések

Ez a metódus a feladatban tárolja az összes olyan nem használati kivételt, amelyet a metódus szinkron megfelelője tud dobni. Ha egy kivételt tárol a visszaadott tevékenységben, akkor a rendszer akkor küldi el a kivételt, amikor a feladatra vár. A használati kivételek(például ArgumentException) továbbra is szinkron módon jelennek meg. A tárolt kivételekről lásd a következő által Connect(String, Int32)kiadott kivételeket: .

A következőre érvényes:

ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs)

Forrás:
Socket.cs
Forrás:
Socket.cs
Forrás:
Socket.cs
Forrás:
Socket.cs
Forrás:
Socket.cs

Elindít egy aszinkron kérést egy távoli gazdagéphez való csatlakozáshoz.

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

Paraméterek

socketType
SocketType

Az egyik SocketType érték.

protocolType
ProtocolType

Az egyik ProtocolType érték.

e
SocketAsyncEventArgs

Az SocketAsyncEventArgs aszinkron szoftvercsatorna-művelethez használni kívánt objektum.

Válaszok

true ha az I/O-művelet függőben van. A Completed paraméter eseménye a e művelet befejezésekor lesz előállítva.

false ha az I/O-művelet szinkron módon fejeződött be. Ebben az esetben a Completed paraméter eseménye nem lesz előállítva, e és a e paraméterként átadott objektum azonnal megvizsgálható, miután a metódushívás visszatér a művelet eredményének lekéréséhez.

Kivételek

Érvénytelen argumentum. Ez a kivétel akkor fordul elő, ha több puffer van megadva, a BufferList tulajdonság nem null.

A e paraméter nem lehet null, és nem RemoteEndPoint lehet null.

A Socket figyelés vagy a szoftvercsatorna-művelet már folyamatban volt a SocketAsyncEventArgs paraméterben e megadott objektum használatával.

Hiba történt a szoftvercsatorna elérésekor.

A helyi végpont és a RemoteEndPoint címcsalád nem azonos.

A Socket le van zárva.

A hívásverem magasabb hívói nem rendelkeznek engedéllyel a kért művelethez.

Megjegyzések

Ha kapcsolatorientált protokollt használ, az M:System.Net.Sockets.Socket.ConnectAsync(System.Net.Sockets.SocketType,System.Net.Sockets.ProtocolType,System.Net.Sockets.SocketAsyncEventArgs) metódus aszinkron kérést indít el a távoli gazdagéphez való csatlakozáshoz. Ha kapcsolat nélküli protokollt használ, létrehoz egy alapértelmezett távoli gazdagépet, ConnectAsync amelyet a rendszer és socketType a protocolType paraméterek határoznak meg.

Ha értesítést szeretne kapni a befejezésről, létre kell hoznia egy visszahívási módszert, amely implementálja az EventHandler<SocketAsyncEventArgs> delegáltját, és csatolja a visszahívást az SocketAsyncEventArgs.Completed eseményhez.

A hívónak a SocketAsyncEventArgs.RemoteEndPoint távoli gazdagépre kell beállítania a IPEndPoint tulajdonságot a csatlakozáshoz.

A hívó a SocketAsyncEventArgs.UserToken metódus meghívása előtt bármilyen felhasználói állapotobjektumra beállíthatja a ConnectAsync tulajdonságot, hogy az információk lekérthetők legyenek a visszahívási metódusban. Ha a visszahívásnak több információra van szüksége, mint egyetlen objektum, létrehozhat egy kis osztályt, amely tagként tárolja a többi szükséges állapotinformációt.

Ha kapcsolat nélküli protokollt, például UDP-t használ, nem kell hívást kezdeményeznie ConnectAsync az adatok küldése és fogadása előtt. Használhatja és SendToAsync kommunikálhat ReceiveFromAsync egy távoli gazdagéppel. Hívás ConnectAsyncesetén a megadott alapértelmezett címtől eltérő címről érkező datagramok elvesznek. Ha módosítani szeretné az alapértelmezett távoli gazdagépet, hívja meg újra a metódust ConnectAsync a kívánt végponttal.

Ha az alapértelmezett távoli gazdagépet szórási címre szeretné beállítani, először hívja meg SetSocketOption és állítsa be a Szórás truebeállítást. Ha ez nem történik meg, a ConnectAsync metódus egy SocketException.

Az objektumon a System.Net.Sockets.SocketAsyncEventArgs következő tulajdonságokra és eseményekre van szükség:

Opcionálisan megadható egy puffer, amely a módszer sikeres végrehajtása után atomilag lesz elküldve a ConnectAsync szoftvercsatornára. Ebben az esetben a tulajdonságot a SocketAsyncEventArgs.Buffer küldendő adatokat tartalmazó pufferre kell állítani, a SocketAsyncEventArgs.Count tulajdonságot pedig a pufferből küldendő adatok bájtjainak számára kell beállítani. A kapcsolat létrejötte után a rendszer elküldi ezt az adatpuffert.

Ha kapcsolatorientált protokollt használ, és a hívás Bindelőtt nem hívConnectAsync, a mögöttes szolgáltató a legmegfelelőbb helyi hálózati címet és portszámot rendeli hozzá.

Ha kapcsolat nélküli protokollt használ, a szolgáltató nem rendel hozzá helyi hálózati IP-címet és portszámot, amíg meg nem hívja a SendAsync metódusokat.ReceiveAsync

A ConnectAsync metódus akkor dob, NotSupportedException ha a címcsalád és a Socket címcsalád SocketAsyncEventArgs.RemoteEndPoint nem azonos.

Note

Ha ezt a metódust SocketException meghívja, a SocketException.ErrorCode tulajdonság használatával szerezze be az adott hibakódot. A kód beszerzése után tekintse meg a Windows Sockets 2-es verziójának API-hibakódját a hiba részletes leírását.

A következőre érvényes:

ConnectAsync(IPAddress[], Int32, CancellationToken)

Forrás:
Socket.Tasks.cs
Forrás:
Socket.Tasks.cs
Forrás:
Socket.Tasks.cs
Forrás:
Socket.Tasks.cs
Forrás:
Socket.Tasks.cs

Kapcsolatot létesít egy távoli gazdagéppel.

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

Paraméterek

addresses
IPAddress[]

A távoli gazdagép IPAddresses-címeinek listája, amely a távoli gazdagéphez való csatlakozásra szolgál.

port
Int32

A távoli gazdagép portja, amelyhez csatlakozni szeretne.

cancellationToken
CancellationToken

Az aszinkron művelet megszakításához használható lemondási jogkivonat.

Válaszok

Egy aszinkron feladat, amely a kapcsolat létrehozásakor fejeződik be.

Kivételek

A addresses paraméter nem lehet null értékű.

A addresses paraméter nem lehet üres tömb.

port kisebb, mint MinPort.

-vagy-

port nagyobb, mint MaxPort.

A foglalat nincs a családban vagy InterNetwork a InterNetworkV6 családban.

Hiba történt a szoftvercsatorna elérésekor.

A Socket le van zárva.

A hívásverem magasabb hívói nem rendelkeznek engedéllyel a kért művelethez.

A lemondási jogkivonat megszakadt. Ezt a kivételt a rendszer a visszaadott tevékenységben tárolja.

Megjegyzések

Ez a metódus a feladatban tárolja az összes olyan nem használati kivételt, amelyet a metódus szinkron megfelelője tud dobni. Ha egy kivételt tárol a visszaadott tevékenységben, akkor a rendszer akkor küldi el a kivételt, amikor a feladatra vár. A használati kivételek(például ArgumentException) továbbra is szinkron módon jelennek meg. A tárolt kivételekről lásd a következő által Connect(IPAddress[], Int32)kiadott kivételeket: .

A következőre érvényes:

ConnectAsync(IPAddress, Int32, CancellationToken)

Forrás:
Socket.Tasks.cs
Forrás:
Socket.Tasks.cs
Forrás:
Socket.Tasks.cs
Forrás:
Socket.Tasks.cs
Forrás:
Socket.Tasks.cs

Kapcsolatot létesít egy távoli gazdagéppel.

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

Paraméterek

address
IPAddress

A távoli gazdagép IPAddress címe, amelyhez csatlakozni szeretne.

port
Int32

A távoli gazdagép portja, amelyhez csatlakozni szeretne.

cancellationToken
CancellationToken

Az aszinkron művelet megszakításához használható lemondási jogkivonat.

Válaszok

Egy aszinkron feladat, amely a kapcsolat létrehozásakor fejeződik be.

Kivételek

A address paraméter nem lehet null értékű.

port kisebb, mint MinPort.

-vagy-

port nagyobb, mint MaxPort.

Hiba történt a szoftvercsatorna elérésekor.

A Socket le van zárva.

A hívásverem magasabb hívói nem rendelkeznek engedéllyel a kért művelethez.

A lemondási jogkivonat megszakadt. Ezt a kivételt a rendszer a visszaadott tevékenységben tárolja.

Megjegyzések

Ez a metódus a feladatban tárolja az összes olyan nem használati kivételt, amelyet a metódus szinkron megfelelője tud dobni. Ha egy kivételt tárol a visszaadott tevékenységben, akkor a rendszer akkor küldi el a kivételt, amikor a feladatra vár. A használati kivételek(például ArgumentException) továbbra is szinkron módon jelennek meg. A tárolt kivételekről lásd a következő által Connect(IPAddress, Int32)kiadott kivételeket: .

A következőre érvényes:

ConnectAsync(String, Int32)

Forrás:
Socket.Tasks.cs
Forrás:
Socket.Tasks.cs
Forrás:
Socket.Tasks.cs
Forrás:
Socket.Tasks.cs
Forrás:
Socket.Tasks.cs

Kapcsolatot létesít egy távoli gazdagéppel.

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

Paraméterek

host
String

A távoli gazdagép gazdaneve, amelyhez csatlakozni szeretne.

port
Int32

A távoli gazdagép portja, amelyhez csatlakozni szeretne.

Válaszok

Egy aszinkron feladat, amely a kapcsolat létrehozásakor fejeződik be.

Kivételek

A host paraméter nem lehet null értékű.

port kisebb, mint MinPort.

-vagy-

port nagyobb, mint MaxPort.

A foglalat nincs a családban vagy InterNetwork a InterNetworkV6 családban.

Hiba történt a szoftvercsatorna elérésekor.

A Socket le van zárva.

A hívásverem magasabb hívói nem rendelkeznek engedéllyel a kért művelethez.

Megjegyzések

Ez a metódus a feladatban tárolja az összes olyan nem használati kivételt, amelyet a metódus szinkron megfelelője tud dobni. Ha egy kivételt tárol a visszaadott tevékenységben, akkor a rendszer akkor küldi el a kivételt, amikor a feladatra vár. A használati kivételek(például ArgumentException) továbbra is szinkron módon jelennek meg. A tárolt kivételekről lásd a következő által Connect(String, Int32)kiadott kivételeket: .

A következőre érvényes:

ConnectAsync(IPAddress[], Int32)

Forrás:
Socket.Tasks.cs
Forrás:
Socket.Tasks.cs
Forrás:
Socket.Tasks.cs
Forrás:
Socket.Tasks.cs
Forrás:
Socket.Tasks.cs

Kapcsolatot létesít egy távoli gazdagéppel.

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

Paraméterek

addresses
IPAddress[]

A távoli gazdagép IPAddresses-címeinek listája, amely a távoli gazdagéphez való csatlakozásra szolgál.

port
Int32

A távoli gazdagép portja, amelyhez csatlakozni szeretne.

Válaszok

Egy aszinkron feladat, amely a kapcsolat létrehozásakor fejeződik be.

Kivételek

A addresses paraméter nem lehet null értékű.

A addresses paraméter nem lehet üres tömb.

port kisebb, mint MinPort.

-vagy-

port nagyobb, mint MaxPort.

A foglalat nincs a családban vagy InterNetwork a InterNetworkV6 családban.

Hiba történt a szoftvercsatorna elérésekor.

A Socket le van zárva.

A hívásverem magasabb hívói nem rendelkeznek engedéllyel a kért művelethez.

Megjegyzések

Ez a metódus a feladatban tárolja az összes olyan nem használati kivételt, amelyet a metódus szinkron megfelelője tud dobni. Ha egy kivételt tárol a visszaadott tevékenységben, akkor a rendszer akkor küldi el a kivételt, amikor a feladatra vár. A használati kivételek(például ArgumentException) továbbra is szinkron módon jelennek meg. A tárolt kivételekről lásd a következő által Connect(IPAddress[], Int32)kiadott kivételeket: .

A következőre érvényes:

ConnectAsync(IPAddress, Int32)

Forrás:
Socket.Tasks.cs
Forrás:
Socket.Tasks.cs
Forrás:
Socket.Tasks.cs
Forrás:
Socket.Tasks.cs
Forrás:
Socket.Tasks.cs

Kapcsolatot létesít egy távoli gazdagéppel.

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

Paraméterek

address
IPAddress

A távoli gazdagép IPAddress címe, amelyhez csatlakozni szeretne.

port
Int32

A távoli gazdagép portja, amelyhez csatlakozni szeretne.

Válaszok

Egy aszinkron feladat, amely a kapcsolat létrehozásakor fejeződik be.

Kivételek

A address paraméter nem lehet null értékű.

port kisebb, mint MinPort.

-vagy-

port nagyobb, mint MaxPort.

A foglalat nincs a családban vagy InterNetwork a InterNetworkV6 családban.

Hiba történt a szoftvercsatorna elérésekor.

A Socket le van zárva.

A hívásverem magasabb hívói nem rendelkeznek engedéllyel a kért művelethez.

Megjegyzések

Ez a metódus a feladatban tárolja az összes olyan nem használati kivételt, amelyet a metódus szinkron megfelelője tud dobni. Ha egy kivételt tárol a visszaadott tevékenységben, akkor a rendszer akkor küldi el a kivételt, amikor a feladatra vár. A használati kivételek(például ArgumentException) továbbra is szinkron módon jelennek meg. A tárolt kivételekről lásd a következő által Connect(IPAddress, Int32)kiadott kivételeket: .

A következőre érvényes:

ConnectAsync(EndPoint, CancellationToken)

Forrás:
Socket.Tasks.cs
Forrás:
Socket.Tasks.cs
Forrás:
Socket.Tasks.cs
Forrás:
Socket.Tasks.cs
Forrás:
Socket.Tasks.cs

Kapcsolatot létesít egy távoli gazdagéppel.

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

Paraméterek

remoteEP
EndPoint

A végpont, amelyhez csatlakozni szeretne.

cancellationToken
CancellationToken

Az aszinkron művelet megszakításához használható lemondási jogkivonat.

Válaszok

Egy aszinkron feladat, amely a kapcsolat létrehozásakor fejeződik be.

Kivételek

A remoteEP paraméter nem lehet null értékű.

Hiba történt a szoftvercsatorna elérésekor.

A helyi végpont és a remoteEP paraméter nem azonos címcsalád.

A Socket le van zárva.

A hívásverem magasabb hívói nem rendelkeznek engedéllyel a kért művelethez.

A lemondási jogkivonat megszakadt. Ezt a kivételt a rendszer a visszaadott tevékenységben tárolja.

Megjegyzések

Ez a metódus a feladatban tárolja az összes olyan nem használati kivételt, amelyet a metódus szinkron megfelelője tud dobni. Ha egy kivételt tárol a visszaadott tevékenységben, akkor a rendszer akkor küldi el a kivételt, amikor a feladatra vár. A használati kivételek(például ArgumentException) továbbra is szinkron módon jelennek meg. A tárolt kivételekről lásd a következő által Connect(EndPoint)kiadott kivételeket: .

A következőre érvényes:

ConnectAsync(SocketAsyncEventArgs)

Forrás:
Socket.cs
Forrás:
Socket.cs
Forrás:
Socket.cs
Forrás:
Socket.cs
Forrás:
Socket.cs

Elindít egy aszinkron kérést egy távoli gazdagéphez való csatlakozáshoz.

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

Paraméterek

e
SocketAsyncEventArgs

Az SocketAsyncEventArgs aszinkron szoftvercsatorna-művelethez használni kívánt objektum.

Válaszok

true ha az I/O-művelet függőben van. A Completed paraméter eseménye a e művelet befejezésekor lesz előállítva.

false ha az I/O-művelet szinkron módon fejeződött be. Ebben az esetben a Completed paraméter eseménye nem lesz előállítva, e és a e paraméterként átadott objektum azonnal megvizsgálható, miután a metódushívás visszatér a művelet eredményének lekéréséhez.

Kivételek

Érvénytelen argumentum. Ez a kivétel akkor fordul elő, ha több puffer van megadva, a BufferList tulajdonság nem null.

A e paraméter nem lehet null, és nem RemoteEndPoint lehet null.

A Socket figyelés vagy a szoftvercsatorna-művelet már folyamatban volt a SocketAsyncEventArgs paraméterben e megadott objektum használatával.

Hiba történt a szoftvercsatorna elérésekor.

A helyi végpont és a RemoteEndPoint címcsalád nem azonos.

A Socket le van zárva.

A hívásverem magasabb hívói nem rendelkeznek engedéllyel a kért művelethez.

Megjegyzések

Ha kapcsolatorientált protokollt használ, a ConnectAsync metódus aszinkron kérést indít el a távoli gazdagéphez való csatlakozáshoz. Ha kapcsolat nélküli protokollt használ, ConnectAsync hozzon létre egy alapértelmezett távoli gazdagépet.

Ha értesítést szeretne kapni a befejezésről, létre kell hoznia egy visszahívási módszert, amely implementálja az EventHandler<SocketAsyncEventArgs> delegáltját, és csatolja a visszahívást az SocketAsyncEventArgs.Completed eseményhez.

A hívónak a SocketAsyncEventArgs.RemoteEndPoint távoli gazdagépre kell beállítania a IPEndPoint tulajdonságot a csatlakozáshoz.

A hívó a SocketAsyncEventArgs.UserToken metódus meghívása előtt bármilyen felhasználói állapotobjektumra beállíthatja a ConnectAsync tulajdonságot, hogy az információk lekérthetők legyenek a visszahívási metódusban. Ha a visszahívásnak több információra van szüksége, mint egyetlen objektum, létrehozhat egy kis osztályt, amely tagként tárolja a többi szükséges állapotinformációt.

Ha kapcsolat nélküli protokollt, például UDP-t használ, nem kell hívást kezdeményeznie ConnectAsync az adatok küldése és fogadása előtt. Használhatja és SendToAsync kommunikálhat ReceiveFromAsync egy távoli gazdagéppel. Hívás ConnectAsyncesetén a megadott alapértelmezett címtől eltérő címről érkező datagramok elvesznek. Ha módosítani szeretné az alapértelmezett távoli gazdagépet, hívja meg újra a metódust ConnectAsync a kívánt végponttal.

Ha az alapértelmezett távoli gazdagépet szórási címre szeretné beállítani, először hívja meg SetSocketOption és állítsa be a Szórás truebeállítást. Ha ez nem történik meg, a ConnectAsync metódus egy SocketException.

Az objektumon a System.Net.Sockets.SocketAsyncEventArgs következő tulajdonságokra és eseményekre van szükség:

Opcionálisan megadható egy puffer, amely a módszer sikeres végrehajtása után atomilag lesz elküldve a ConnectAsync szoftvercsatornára. Ebben az esetben a tulajdonságot a SocketAsyncEventArgs.Buffer küldendő adatokat tartalmazó pufferre kell állítani, a SocketAsyncEventArgs.Count tulajdonságot pedig a pufferből küldendő adatok bájtjainak számára kell beállítani. A kapcsolat létrejötte után a rendszer elküldi ezt az adatpuffert.

Ha kapcsolatorientált protokollt használ, és a hívás Bindelőtt nem hívConnectAsync, a mögöttes szolgáltató a legmegfelelőbb helyi hálózati címet és portszámot rendeli hozzá.

Ha kapcsolat nélküli protokollt használ, a szolgáltató nem rendel hozzá helyi hálózati IP-címet és portszámot, amíg meg nem hívja a SendAsync metódusokat.ReceiveAsync

A ConnectAsync metódus akkor dob, NotSupportedException ha a címcsalád és a Socket címcsalád SocketAsyncEventArgs.RemoteEndPoint nem azonos.

Note

Ha ezt a metódust SocketException meghívja, a SocketException.ErrorCode tulajdonság használatával szerezze be az adott hibakódot. A kód beszerzése után tekintse meg a Windows Sockets 2-es verziójának API-hibakódját a hiba részletes leírását.

Lásd még

A következőre érvényes:

ConnectAsync(EndPoint)

Forrás:
Socket.Tasks.cs
Forrás:
Socket.Tasks.cs
Forrás:
Socket.Tasks.cs
Forrás:
Socket.Tasks.cs
Forrás:
Socket.Tasks.cs

Kapcsolatot létesít egy távoli gazdagéppel.

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

Paraméterek

remoteEP
EndPoint

A végpont, amelyhez csatlakozni szeretne.

Válaszok

Egy aszinkron feladat, amely a kapcsolat létrehozásakor fejeződik be.

Kivételek

A remoteEP paraméter nem lehet null értékű.

Hiba történt a szoftvercsatorna elérésekor.

A helyi végpont és a remoteEP paraméter nem azonos címcsalád.

A Socket le van zárva.

A hívásverem magasabb hívói nem rendelkeznek engedéllyel a kért művelethez.

Megjegyzések

Ez a metódus a feladatban tárolja az összes olyan nem használati kivételt, amelyet a metódus szinkron megfelelője tud dobni. Ha egy kivételt tárol a visszaadott tevékenységben, akkor a rendszer akkor küldi el a kivételt, amikor a feladatra vár. A használati kivételek(például ArgumentException) továbbra is szinkron módon jelennek meg. A tárolt kivételekről lásd a következő által Connect(EndPoint)kiadott kivételeket: .

A következőre érvényes: