Socket.ConnectAsync Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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ű.
A Socket hallgatás.
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.
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.
A Socket hallgatás.
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ű.
A Socket hallgatás.
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ű.
A Socket hallgatás.
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.
A Socket hallgatás.
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ű.
A Socket hallgatás.
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ű.
A Socket hallgatás.
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
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ű.
A Socket hallgatás.
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: .