Sdílet prostřednictvím


Socket.ConnectAsync Metoda

Definice

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.

port je menší než MinPort.

-or-

port je větší než MaxPort.

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.

e
SocketAsyncEventArgs

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ý.

port je menší než MinPort.

-or-

port je větší než MaxPort.

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.

port je menší než MinPort.

-or-

port je větší než MaxPort.

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.

port je menší než MinPort.

-or-

port je větší než MaxPort.

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ý.

port je menší než MinPort.

-or-

port je větší než MaxPort.

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.

port je menší než MinPort.

-or-

port je větší než MaxPort.

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.

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

e
SocketAsyncEventArgs

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.

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).

Platí pro