Socket.ConnectAsync Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Zahájí asynchronní požadavek na připojení ke vzdálenému hostiteli.
Přetížení
| Name | Description |
|---|---|
| ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs, ConnectAlgorithm) | |
| ConnectAsync(String, Int32, CancellationToken) |
Vytvoří připojení ke vzdálenému hostiteli. |
| ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs) |
Zahájí asynchronní požadavek na připojení ke vzdálenému hostiteli. |
| ConnectAsync(IPAddress[], Int32, CancellationToken) |
Vytvoří připojení ke vzdálenému hostiteli. |
| ConnectAsync(IPAddress, Int32, CancellationToken) |
Vytvoří připojení ke vzdálenému hostiteli. |
| ConnectAsync(String, Int32) |
Vytvoří připojení ke vzdálenému hostiteli. |
| ConnectAsync(IPAddress[], Int32) |
Vytvoří připojení ke vzdálenému hostiteli. |
| ConnectAsync(IPAddress, Int32) |
Vytvoří připojení ke vzdálenému hostiteli. |
| ConnectAsync(EndPoint, CancellationToken) |
Vytvoří připojení ke vzdálenému hostiteli. |
| ConnectAsync(SocketAsyncEventArgs) |
Zahájí asynchronní požadavek na připojení ke vzdálenému hostiteli. |
| ConnectAsync(EndPoint) |
Vytvoří připojení ke vzdálenému hostiteli. |
ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs, 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);
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
Parametry
- socketType
- SocketType
- protocolType
- ProtocolType
- connectAlgorithm
- ConnectAlgorithm
Návraty
Platí pro
ConnectAsync(String, Int32, CancellationToken)
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
Vytvoří připojení ke vzdálenému hostiteli.
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
Parametry
- host
- String
Název hostitele vzdáleného hostitele, ke kterému se chcete připojit.
- port
- Int32
Port na vzdáleném hostiteli, ke kterému se chcete připojit.
- cancellationToken
- CancellationToken
Token zrušení, který lze použít ke zrušení asynchronní operace.
Návraty
Asynchronní úloha, která se dokončí při navázání připojení.
Výjimky
Parametr host nemůže mít hodnotu null.
Naslouchá Socket .
Soket není v rodině ani InterNetworkV6 v rodiněInterNetwork.
Při pokusu o přístup k soketu došlo k chybě.
Ta Socket byla uzavřena.
Volající vyšší v zásobníku volání nemá oprávnění pro požadovanou operaci.
Token zrušení byl zrušen. Tato výjimka je uložena do vrácené úlohy.
Poznámky
Tato metoda ukládá do úlohy všechny výjimky bez použití, které může vyvolat synchronní protějšek metody. Pokud je výjimka uložena do vrácené úlohy, tato výjimka bude vyvolána, když je úkol očekáván. Výjimky použití, například ArgumentException, jsou stále vyvolány synchronně. V případě uložených výjimek se podívejte na výjimky vyvolané Connect(String, Int32).
Platí pro
ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs)
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
Zahájí asynchronní požadavek na připojení ke vzdálenému hostiteli.
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
Parametry
- socketType
- SocketType
Jedna z SocketType hodnot.
- protocolType
- ProtocolType
Jedna z ProtocolType hodnot.
Objekt SocketAsyncEventArgs , který se má použít pro tuto asynchronní operaci soketu.
Návraty
true pokud operace vstupně-výstupní operace čeká na vyřízení. Událost Completed parametru e bude vyvolána po dokončení operace.
false pokud se vstupně-výstupní operace dokončila synchronně. V tomto případě Completed nebude vyvolána událost parametru e a e objekt předaný jako parametr může být zkoumán okamžitě po volání metody vrátí načíst výsledek operace.
Výjimky
Argument není platný. K této výjimce dochází, pokud je zadáno více vyrovnávacích pamětí, BufferList vlastnost není null.
Parametr e nemůže být null a RemoteEndPoint nesmí mít hodnotu null.
Operace Socket naslouchání nebo operace soketu již probíhala pomocí objektu SocketAsyncEventArgs zadaného v parametru e .
Při pokusu o přístup k soketu došlo k chybě.
Místní koncový bod a stejná RemoteEndPoint řada adres nejsou.
Ta Socket byla uzavřena.
Volající vyšší v zásobníku volání nemá oprávnění pro požadovanou operaci.
Poznámky
Pokud používáte protokol orientovaný na připojení, spustí metoda M:System.Net.Sockets.Socket.ConnectAsync(System.Net.Sockets.SocketType,System.Net.Sockets.ProtocolType,System.Net.SocketS.SocketAsyncEventArgs) asynchronní požadavek na připojení ke vzdálenému hostiteli. Pokud používáte protokol bez připojení, ConnectAsync naváže výchozí vzdáleného hostitele určeného parametry socketType a protocolType parametry.
Chcete-li být upozorněni na dokončení, musíte vytvořit metodu zpětného volání, která implementuje delegáta EventHandler<SocketAsyncEventArgs> a připojit zpětné volání k SocketAsyncEventArgs.Completed události.
Volající musí vlastnost nastavit SocketAsyncEventArgs.RemoteEndPoint na IPEndPoint vzdáleného hostitele, ke kterému se má připojit.
Volající může před voláním ConnectAsync metody nastavit SocketAsyncEventArgs.UserToken vlastnost na libovolný objekt stavu uživatele, aby informace byly v metodě zpětného volání dostupné. Pokud zpětné volání potřebuje více informací než jeden objekt, lze vytvořit malou třídu, která bude obsahovat další požadované informace o stavu jako členy.
Pokud používáte protokol bez připojení, jako je UDP, nemusíte volat ConnectAsync před odesíláním a příjmem dat. Můžete použít SendToAsync a ReceiveFromAsync komunikovat se vzdáleným hostitelem. Pokud zavoláte ConnectAsync, všechny datagramy, které přicházejí z jiné adresy, než je zadaná výchozí hodnota, se zahodí. Pokud chcete změnit výchozího vzdáleného hostitele, zavolejte metodu ConnectAsync znovu s požadovaným koncovým bodem.
Pokud chcete nastavit výchozího vzdáleného hostitele na adresu všesměrového vysílání, musíte nejprve zavolat SetSocketOption a nastavit Všesměrové vysílání na true. Pokud to není hotové, ConnectAsync metoda vyvolá SocketException.
Jsou vyžadovány následující vlastnosti a události objektu System.Net.Sockets.SocketAsyncEventArgs :
Volitelně může být poskytnuta vyrovnávací paměť, která bude atomicky odeslána na soket po ConnectAsync úspěšné metodě. V tomto případě SocketAsyncEventArgs.Buffer musí být vlastnost nastavena na vyrovnávací paměť obsahující data, která se mají odeslat, a SocketAsyncEventArgs.Count vlastnost musí být nastavena na počet bajtů dat, které se mají odeslat z vyrovnávací paměti. Po navázání připojení se tato vyrovnávací paměť dat odešle.
Pokud používáte protokol orientovaný na připojení a před voláním nevoláte BindConnectAsync, přiřadí poskytovatel základní služby nejvhodnější adresu místní sítě a číslo portu.
Pokud používáte protokol bez připojení, poskytovatel služeb nebude přiřazovat IP adresu místní sítě a číslo portu, dokud nebudete volat SendAsync nebo ReceiveAsync metody.
Metoda ConnectAsync vyvolá NotSupportedException , pokud rodina Socket adres a SocketAsyncEventArgs.RemoteEndPoint nejsou stejnou rodinou adres.
Poznámka:
Pokud se při volání této metody zobrazí SocketException volání této metody, použijte SocketException.ErrorCode vlastnost k získání konkrétního kódu chyby. Po získání tohoto kódu si přečtěte dokumentaci k chybě rozhraní API rozhraní WINDOWS Sockets verze 2 , kde najdete podrobný popis chyby.
Platí pro
ConnectAsync(IPAddress[], Int32, CancellationToken)
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
Vytvoří připojení ke vzdálenému hostiteli.
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
Parametry
- addresses
- IPAddress[]
Seznam IPAddresses pro vzdáleného hostitele, který se použije k pokusu o připojení ke vzdálenému hostiteli.
- port
- Int32
Port na vzdáleném hostiteli, ke kterému se chcete připojit.
- cancellationToken
- CancellationToken
Token zrušení, který lze použít ke zrušení asynchronní operace.
Návraty
Asynchronní úloha, která se dokončí při navázání připojení.
Výjimky
Parametr addresses nemůže mít hodnotu null.
Parametr addresses nemůže být prázdný.
Naslouchá Socket .
Soket není v rodině ani InterNetworkV6 v rodiněInterNetwork.
Při pokusu o přístup k soketu došlo k chybě.
Ta Socket byla uzavřena.
Volající vyšší v zásobníku volání nemá oprávnění pro požadovanou operaci.
Token zrušení byl zrušen. Tato výjimka je uložena do vrácené úlohy.
Poznámky
Tato metoda ukládá do úlohy všechny výjimky bez použití, které může vyvolat synchronní protějšek metody. Pokud je výjimka uložena do vrácené úlohy, tato výjimka bude vyvolána, když je úkol očekáván. Výjimky použití, například ArgumentException, jsou stále vyvolány synchronně. V případě uložených výjimek se podívejte na výjimky vyvolané Connect(IPAddress[], Int32).
Platí pro
ConnectAsync(IPAddress, Int32, CancellationToken)
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
Vytvoří připojení ke vzdálenému hostiteli.
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
Parametry
- address
- IPAddress
IPAddress vzdáleného hostitele pro připojení.
- port
- Int32
Port na vzdáleném hostiteli, ke kterému se chcete připojit.
- cancellationToken
- CancellationToken
Token zrušení, který lze použít ke zrušení asynchronní operace.
Návraty
Asynchronní úloha, která se dokončí při navázání připojení.
Výjimky
Parametr address nemůže mít hodnotu null.
Naslouchá Socket .
Při pokusu o přístup k soketu došlo k chybě.
Ta Socket byla uzavřena.
Volající vyšší v zásobníku volání nemá oprávnění pro požadovanou operaci.
Token zrušení byl zrušen. Tato výjimka je uložena do vrácené úlohy.
Poznámky
Tato metoda ukládá do úlohy všechny výjimky bez použití, které může vyvolat synchronní protějšek metody. Pokud je výjimka uložena do vrácené úlohy, tato výjimka bude vyvolána, když je úkol očekáván. Výjimky použití, například ArgumentException, jsou stále vyvolány synchronně. V případě uložených výjimek se podívejte na výjimky vyvolané Connect(IPAddress, Int32).
Platí pro
ConnectAsync(String, Int32)
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
Vytvoří připojení ke vzdálenému hostiteli.
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
Parametry
- host
- String
Název hostitele vzdáleného hostitele, ke kterému se chcete připojit.
- port
- Int32
Port na vzdáleném hostiteli, ke kterému se chcete připojit.
Návraty
Asynchronní úloha, která se dokončí při navázání připojení.
Výjimky
Parametr host nemůže mít hodnotu null.
Naslouchá Socket .
Soket není v rodině ani InterNetworkV6 v rodiněInterNetwork.
Při pokusu o přístup k soketu došlo k chybě.
Ta Socket byla uzavřena.
Volající vyšší v zásobníku volání nemá oprávnění pro požadovanou operaci.
Poznámky
Tato metoda ukládá do úlohy všechny výjimky bez použití, které může vyvolat synchronní protějšek metody. Pokud je výjimka uložena do vrácené úlohy, tato výjimka bude vyvolána, když je úkol očekáván. Výjimky použití, například ArgumentException, jsou stále vyvolány synchronně. V případě uložených výjimek se podívejte na výjimky vyvolané Connect(String, Int32).
Platí pro
ConnectAsync(IPAddress[], Int32)
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
Vytvoří připojení ke vzdálenému hostiteli.
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
Parametry
- addresses
- IPAddress[]
Seznam IPAddresses pro vzdáleného hostitele, který se použije k pokusu o připojení ke vzdálenému hostiteli.
- port
- Int32
Port na vzdáleném hostiteli, ke kterému se chcete připojit.
Návraty
Asynchronní úloha, která se dokončí při navázání připojení.
Výjimky
Parametr addresses nemůže mít hodnotu null.
Parametr addresses nemůže být prázdný.
Naslouchá Socket .
Soket není v rodině ani InterNetworkV6 v rodiněInterNetwork.
Při pokusu o přístup k soketu došlo k chybě.
Ta Socket byla uzavřena.
Volající vyšší v zásobníku volání nemá oprávnění pro požadovanou operaci.
Poznámky
Tato metoda ukládá do úlohy všechny výjimky bez použití, které může vyvolat synchronní protějšek metody. Pokud je výjimka uložena do vrácené úlohy, tato výjimka bude vyvolána, když je úkol očekáván. Výjimky použití, například ArgumentException, jsou stále vyvolány synchronně. V případě uložených výjimek se podívejte na výjimky vyvolané Connect(IPAddress[], Int32).
Platí pro
ConnectAsync(IPAddress, Int32)
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
Vytvoří připojení ke vzdálenému hostiteli.
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
Parametry
- address
- IPAddress
IPAddress vzdáleného hostitele pro připojení.
- port
- Int32
Port na vzdáleném hostiteli, ke kterému se chcete připojit.
Návraty
Asynchronní úloha, která se dokončí při navázání připojení.
Výjimky
Parametr address nemůže mít hodnotu null.
Naslouchá Socket .
Soket není v rodině ani InterNetworkV6 v rodiněInterNetwork.
Při pokusu o přístup k soketu došlo k chybě.
Ta Socket byla uzavřena.
Volající vyšší v zásobníku volání nemá oprávnění pro požadovanou operaci.
Poznámky
Tato metoda ukládá do úlohy všechny výjimky bez použití, které může vyvolat synchronní protějšek metody. Pokud je výjimka uložena do vrácené úlohy, tato výjimka bude vyvolána, když je úkol očekáván. Výjimky použití, například ArgumentException, jsou stále vyvolány synchronně. V případě uložených výjimek se podívejte na výjimky vyvolané Connect(IPAddress, Int32).
Platí pro
ConnectAsync(EndPoint, CancellationToken)
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
Vytvoří připojení ke vzdálenému hostiteli.
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
Parametry
- remoteEP
- EndPoint
Koncový bod, ke kterému se chcete připojit.
- cancellationToken
- CancellationToken
Token zrušení, který lze použít ke zrušení asynchronní operace.
Návraty
Asynchronní úloha, která se dokončí při navázání připojení.
Výjimky
Parametr remoteEP nemůže mít hodnotu null.
Naslouchá Socket .
Při pokusu o přístup k soketu došlo k chybě.
Místní koncový bod a remoteEP parametr nejsou stejnou řadu adres.
Ta Socket byla uzavřena.
Volající vyšší v zásobníku volání nemá oprávnění pro požadovanou operaci.
Token zrušení byl zrušen. Tato výjimka je uložena do vrácené úlohy.
Poznámky
Tato metoda ukládá do úlohy všechny výjimky bez použití, které může vyvolat synchronní protějšek metody. Pokud je výjimka uložena do vrácené úlohy, tato výjimka bude vyvolána, když je úkol očekáván. Výjimky použití, například ArgumentException, jsou stále vyvolány synchronně. V případě uložených výjimek se podívejte na výjimky vyvolané Connect(EndPoint).
Platí pro
ConnectAsync(SocketAsyncEventArgs)
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
Zahájí asynchronní požadavek na připojení ke vzdálenému hostiteli.
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
Parametry
Objekt SocketAsyncEventArgs , který se má použít pro tuto asynchronní operaci soketu.
Návraty
true pokud operace vstupně-výstupní operace čeká na vyřízení. Událost Completed parametru e bude vyvolána po dokončení operace.
false pokud se vstupně-výstupní operace dokončila synchronně. V tomto případě Completed nebude vyvolána událost parametru e a e objekt předaný jako parametr může být zkoumán okamžitě po volání metody vrátí načíst výsledek operace.
Výjimky
Argument není platný. K této výjimce dochází, pokud je zadáno více vyrovnávacích pamětí, BufferList vlastnost není null.
Parametr e nemůže být null a RemoteEndPoint nesmí mít hodnotu null.
Operace Socket naslouchání nebo operace soketu již probíhala pomocí objektu SocketAsyncEventArgs zadaného v parametru e .
Při pokusu o přístup k soketu došlo k chybě.
Místní koncový bod a stejná RemoteEndPoint řada adres nejsou.
Ta Socket byla uzavřena.
Volající vyšší v zásobníku volání nemá oprávnění pro požadovanou operaci.
Poznámky
Pokud používáte protokol orientovaný na připojení, metoda ConnectAsync spustí asynchronní požadavek na připojení ke vzdálenému hostiteli. Pokud používáte protokol bez připojení, ConnectAsync naváže se výchozí vzdálený hostitel.
Chcete-li být upozorněni na dokončení, musíte vytvořit metodu zpětného volání, která implementuje delegáta EventHandler<SocketAsyncEventArgs> a připojit zpětné volání k SocketAsyncEventArgs.Completed události.
Volající musí vlastnost nastavit SocketAsyncEventArgs.RemoteEndPoint na IPEndPoint vzdáleného hostitele, ke kterému se má připojit.
Volající může před voláním ConnectAsync metody nastavit SocketAsyncEventArgs.UserToken vlastnost na libovolný objekt stavu uživatele, aby informace byly v metodě zpětného volání dostupné. Pokud zpětné volání potřebuje více informací než jeden objekt, lze vytvořit malou třídu, která bude obsahovat další požadované informace o stavu jako členy.
Pokud používáte protokol bez připojení, jako je UDP, nemusíte volat ConnectAsync před odesíláním a příjmem dat. Můžete použít SendToAsync a ReceiveFromAsync komunikovat se vzdáleným hostitelem. Pokud zavoláte ConnectAsync, všechny datagramy, které přicházejí z jiné adresy, než je zadaná výchozí hodnota, se zahodí. Pokud chcete změnit výchozího vzdáleného hostitele, zavolejte metodu ConnectAsync znovu s požadovaným koncovým bodem.
Pokud chcete nastavit výchozího vzdáleného hostitele na adresu všesměrového vysílání, musíte nejprve zavolat SetSocketOption a nastavit Všesměrové vysílání na true. Pokud to není hotové, ConnectAsync metoda vyvolá SocketException.
Jsou vyžadovány následující vlastnosti a události objektu System.Net.Sockets.SocketAsyncEventArgs :
Volitelně může být poskytnuta vyrovnávací paměť, která bude atomicky odeslána na soket po ConnectAsync úspěšné metodě. V tomto případě SocketAsyncEventArgs.Buffer musí být vlastnost nastavena na vyrovnávací paměť obsahující data, která se mají odeslat, a SocketAsyncEventArgs.Count vlastnost musí být nastavena na počet bajtů dat, které se mají odeslat z vyrovnávací paměti. Po navázání připojení se tato vyrovnávací paměť dat odešle.
Pokud používáte protokol orientovaný na připojení a před voláním nevoláte BindConnectAsync, přiřadí poskytovatel základní služby nejvhodnější adresu místní sítě a číslo portu.
Pokud používáte protokol bez připojení, poskytovatel služeb nebude přiřazovat IP adresu místní sítě a číslo portu, dokud nebudete volat SendAsync nebo ReceiveAsync metody.
Metoda ConnectAsync vyvolá NotSupportedException , pokud rodina Socket adres a SocketAsyncEventArgs.RemoteEndPoint nejsou stejnou rodinou adres.
Poznámka:
Pokud se při volání této metody zobrazí SocketException volání této metody, použijte SocketException.ErrorCode vlastnost k získání konkrétního kódu chyby. Po získání tohoto kódu si přečtěte dokumentaci k chybě rozhraní API rozhraní WINDOWS Sockets verze 2 , kde najdete podrobný popis chyby.
Viz také
Platí pro
ConnectAsync(EndPoint)
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
Vytvoří připojení ke vzdálenému hostiteli.
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
Parametry
- remoteEP
- EndPoint
Koncový bod, ke kterému se chcete připojit.
Návraty
Asynchronní úloha, která se dokončí při navázání připojení.
Výjimky
Parametr remoteEP nemůže mít hodnotu null.
Naslouchá Socket .
Při pokusu o přístup k soketu došlo k chybě.
Místní koncový bod a remoteEP parametr nejsou stejnou řadu adres.
Ta Socket byla uzavřena.
Volající vyšší v zásobníku volání nemá oprávnění pro požadovanou operaci.
Poznámky
Tato metoda ukládá do úlohy všechny výjimky bez použití, které může vyvolat synchronní protějšek metody. Pokud je výjimka uložena do vrácené úlohy, tato výjimka bude vyvolána, když je úkol očekáván. Výjimky použití, například ArgumentException, jsou stále vyvolány synchronně. V případě uložených výjimek se podívejte na výjimky vyvolané Connect(EndPoint).