Socket.BeginConnect Metoda

Definice

Zahájí asynchronní požadavek na připojení ke vzdálenému hostiteli.

Přetížení

BeginConnect(EndPoint, AsyncCallback, Object)

Zahájí asynchronní požadavek na připojení ke vzdálenému hostiteli.

BeginConnect(IPAddress, Int32, AsyncCallback, Object)

Zahájí asynchronní požadavek na připojení ke vzdálenému hostiteli. Hostitel je určen číslem IPAddress portu a .

BeginConnect(IPAddress[], Int32, AsyncCallback, Object)

Zahájí asynchronní požadavek na připojení ke vzdálenému hostiteli. Hostitel je určen polem IPAddress a číslem portu.

BeginConnect(String, Int32, AsyncCallback, Object)

Zahájí asynchronní požadavek na připojení ke vzdálenému hostiteli. Hostitel je určen názvem hostitele a číslem portu.

BeginConnect(EndPoint, AsyncCallback, Object)

Zdroj:
Socket.cs
Zdroj:
Socket.cs
Zdroj:
Socket.cs

Zahájí asynchronní požadavek na připojení ke vzdálenému hostiteli.

public:
 IAsyncResult ^ BeginConnect(System::Net::EndPoint ^ remoteEP, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginConnect (System.Net.EndPoint remoteEP, AsyncCallback? callback, object? state);
public IAsyncResult BeginConnect (System.Net.EndPoint remoteEP, AsyncCallback callback, object state);
member this.BeginConnect : System.Net.EndPoint * AsyncCallback * obj -> IAsyncResult
Public Function BeginConnect (remoteEP As EndPoint, callback As AsyncCallback, state As Object) As IAsyncResult

Parametry

remoteEP
EndPoint

Představuje EndPoint vzdáleného hostitele.

callback
AsyncCallback

Delegát.AsyncCallback

state
Object

Objekt, který obsahuje informace o stavu tohoto požadavku.

Návraty

Odkaz IAsyncResult na asynchronní připojení.

Výjimky

remoteEP je null.

Pouze rozhraní .NET Framework a .NET 5 a starší: Při pokusu o přístup k soketu došlo k chybě.

Volající výše v zásobníku volání nemá oprávnění k požadované operaci.

Objekt Socket byl umístěn do naslouchacího stavu voláním Listen(Int32)nebo již probíhá asynchronní operace.

Poznámky

Důležité

Toto je rozhraní API pro kompatibilitu. Pro nový vývoj nedoporučujeme používat metody APM (Begin* a End*). Místo toho použijte ekvivalenty založené na Task.

Protokoly orientované na připojení můžou pomocí BeginAccept metody začít přijímat příchozí pokusy o připojení. Výsledná operace přijetí je reprezentována vrácenou IAsyncResult operací, i když se může dokončit synchronně. Před voláním BeginAccept metody je nutné volat metodu Listen , která naslouchá příchozím požadavkům na připojení a zařadí do fronty.

Zpětné volání, které se implementuje AsyncCallback do BeginAccept , můžete předat, abyste dostali oznámení o dokončení operace přijetí. Všimněte si, že pokud podkladový síťový zásobník dokončí operaci synchronně, může být zpětné volání spuštěno přímo během volání nástroje BeginAccept. V tomto případě CompletedSynchronously bude vlastnost vrácena IAsyncResult na hodnotu, která true označuje, že metoda byla dokončena synchronně. AsyncState K získání objektu IAsyncResult stavu předaného metodě použijte vlastnost objektuBeginAccept.

Operace BeginAccept musí být dokončena voláním EndAccept metody. Obvykle je metoda vyvolána poskytnutým AsyncCallback delegátem. EndAccept zablokuje volající vlákno, dokud se operace nedokonči.

Pokud chcete zrušit čekající volání BeginAccept metody, zavřete .Socket Close Při volání metody, zatímco asynchronní operace probíhá, zpětné volání poskytnuté BeginAccept metodě je volána. Následné volání EndAccept metody vyvolá ObjectDisposedException (před rozhraním .NET 7) nebo SocketException (v .NET 7+) označující, že operace byla zrušena.

Poznámka

Vlastnost vráceného RemoteEndPointSocket objektu můžete použít k identifikaci síťové adresy a čísla portu vzdáleného hostitele.

Poznámka

Pokud se zobrazí SocketException, použijte SocketException.ErrorCode vlastnost k získání konkrétního kódu chyby.

Poznámka

Tento člen poskytuje trasovací informace, když je ve vaší aplikaci povoleno trasování sítě. Další informace najdete v tématu Trasování sítě v rozhraní .NET Framework.

Poznámka

Kontext spuštění (kontext zabezpečení, zosobněný uživatel a kontext volání) se ukládá do mezipaměti pro asynchronní Socket metody. Po prvním použití konkrétního kontextu (konkrétní asynchronní Socket metody, konkrétní Socket instance a konkrétního zpětného volání) se při následných použitích tohoto kontextu projeví zlepšení výkonu.

Viz také

Platí pro

BeginConnect(IPAddress, Int32, AsyncCallback, Object)

Zdroj:
Socket.cs
Zdroj:
Socket.cs
Zdroj:
Socket.cs

Zahájí asynchronní požadavek na připojení ke vzdálenému hostiteli. Hostitel je určen číslem IPAddress portu a .

public:
 IAsyncResult ^ BeginConnect(System::Net::IPAddress ^ address, int port, AsyncCallback ^ requestCallback, System::Object ^ state);
public IAsyncResult BeginConnect (System.Net.IPAddress address, int port, AsyncCallback? requestCallback, object? state);
public IAsyncResult BeginConnect (System.Net.IPAddress address, int port, AsyncCallback requestCallback, object state);
member this.BeginConnect : System.Net.IPAddress * int * AsyncCallback * obj -> IAsyncResult
Public Function BeginConnect (address As IPAddress, port As Integer, requestCallback As AsyncCallback, state As Object) As IAsyncResult

Parametry

address
IPAddress

Hodnota IPAddress vzdáleného hostitele.

port
Int32

Číslo portu vzdáleného hostitele.

requestCallback
AsyncCallback

Delegát AsyncCallback , který odkazuje na metodu, která se má vyvolat po dokončení operace připojení.

state
Object

Uživatelem definovaný objekt, který obsahuje informace o operaci připojení. Po dokončení operace se tento objekt předá requestCallback delegátu.

Návraty

Odkazuje IAsyncResult na asynchronní připojení.

Výjimky

address je null.

Pouze rozhraní .NET Framework a .NET 5 a starší: Při pokusu o přístup k soketu došlo k chybě.

Není Socket v rodině soketů.

Číslo portu není platné.

Délka je address nula.

Objekt Socket byl umístěn do naslouchacího stavu voláním Listen(Int32)nebo již probíhá asynchronní operace.

Poznámky

Důležité

Toto je rozhraní API pro kompatibilitu. Pro nový vývoj nedoporučujeme používat metody APM (Begin* a End*). Místo toho použijte ekvivalenty založené na Task.

Pokud používáte protokol orientovaný na připojení, BeginConnect metoda spustí asynchronní požadavek na připojení k koncovému objektu určenému parametrem remoteEP . Pokud používáte protokol bez připojení, BeginConnect vytvoří výchozího vzdáleného hostitele.

Můžete předat zpětné volání, které se implementuje AsyncCallback do BeginConnect , abyste dostali oznámení o dokončení operace připojení. Všimněte si, že pokud podkladový síťový zásobník dokončí operaci synchronně, může být zpětné volání spuštěno přímo během volání nástroje BeginConnect. V tomto případě CompletedSynchronously bude vlastnost vrácena IAsyncResult na hodnotu, která true označuje, že metoda byla dokončena synchronně. AsyncState K získání objektu IAsyncResult stavu předaného metodě použijte vlastnost objektuBeginConnect.

Operace BeginConnect musí být dokončena voláním EndConnect metody. Obvykle je metoda vyvolána poskytnutým AsyncCallback delegátem. EndConnect zablokuje volající vlákno, dokud se operace nedokonči.

Pokud používáte protokol bez připojení, jako je UDP, nemusíte před odesíláním a přijímáním dat volat BeginConnect . Ke komunikaci se vzdáleným hostitelem můžete použít BeginSendTo a BeginReceiveFrom . Pokud zavoláte BeginConnect, všechny datagramy, které přicházejí z jiné než zadané výchozí adresy, budou zahozeny. 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 nemůžete, BeginConnect vyhodí SocketException.

Pokud používáte protokol orientovaný na připojení a nevoláte Bind před voláním BeginConnect, poskytovatel základní služby přiřadí nejvhodnější adresu místní sítě a číslo portu. Pokud používáte protokol bez připojení, poskytovatel služeb nepřiřadí adresu místní sítě a číslo portu, dokud nezavoláte metodu BeginSend nebo ReceiveFrom . Pokud chcete změnit výchozího vzdáleného hostitele, zavolejte metodu BeginConnect znovu s požadovaným koncovým bodem.

Pokud chcete zrušit čekající volání BeginConnect metody, zavřete .Socket Close Při volání metody, zatímco asynchronní operace probíhá, zpětné volání poskytnuté BeginConnect metodě je volána. Následné volání EndConnect metody vyvolá ObjectDisposedException (před rozhraním .NET 7) nebo SocketException (v .NET 7+) označující, že operace byla zrušena.

Poznámka

Pokud se zobrazí SocketException, použijte SocketException.ErrorCode vlastnost k získání konkrétního kódu chyby.

Poznámka

Pokud byl tento soket dříve odpojen, BeginConnect musí být volán ve vlákně, které se ukončí, dokud se operace nedokončila. Jedná se o omezení základního poskytovatele.

Poznámka

Tento člen poskytuje trasovací informace, když je ve vaší aplikaci povoleno trasování sítě. Další informace najdete v tématu Trasování sítě v rozhraní .NET Framework.

Poznámka

Kontext spuštění (kontext zabezpečení, zosobněný uživatel a kontext volání) se ukládá do mezipaměti pro asynchronní Socket metody. Po prvním použití určitého kontextu (konkrétní asynchronní Socket metoda, konkrétní Socket instance a konkrétní zpětné volání) dojde při dalších použitích tohoto kontextu ke zlepšení výkonu.

Viz také

Platí pro

BeginConnect(IPAddress[], Int32, AsyncCallback, Object)

Zdroj:
Socket.cs
Zdroj:
Socket.cs
Zdroj:
Socket.cs

Zahájí asynchronní požadavek na připojení ke vzdálenému hostiteli. Hostitel je určen polem IPAddress a číslem portu.

public:
 IAsyncResult ^ BeginConnect(cli::array <System::Net::IPAddress ^> ^ addresses, int port, AsyncCallback ^ requestCallback, System::Object ^ state);
public IAsyncResult BeginConnect (System.Net.IPAddress[] addresses, int port, AsyncCallback? requestCallback, object? state);
public IAsyncResult BeginConnect (System.Net.IPAddress[] addresses, int port, AsyncCallback requestCallback, object state);
member this.BeginConnect : System.Net.IPAddress[] * int * AsyncCallback * obj -> IAsyncResult
Public Function BeginConnect (addresses As IPAddress(), port As Integer, requestCallback As AsyncCallback, state As Object) As IAsyncResult

Parametry

addresses
IPAddress[]

Alespoň jeden IPAddress, který označuje vzdáleného hostitele.

port
Int32

Číslo portu vzdáleného hostitele.

requestCallback
AsyncCallback

Delegát AsyncCallback , který odkazuje na metodu vyvolání po dokončení operace připojení.

state
Object

Uživatelem definovaný objekt, který obsahuje informace o operaci připojení. Tento objekt je po dokončení operace předán requestCallback delegátu.

Návraty

Odkazuje IAsyncResult na asynchronní připojení.

Výjimky

addresses je null.

Pouze rozhraní .NET Framework a .NET 5 a starší: Při pokusu o přístup k soketu došlo k chybě.

Tato metoda je platná pro sokety, které používají InterNetwork nebo InterNetworkV6.

Číslo portu není platné.

Délka je address nula.

Objekt Socket byl umístěn do naslouchacího stavu voláním Listen(Int32), nebo již probíhá asynchronní operace.

Poznámky

Důležité

Toto je rozhraní API pro kompatibilitu. Pro nový vývoj nedoporučujeme používat metody APM (Begin* a End*). Místo toho použijte ekvivalenty založené na Task.

Pokud používáte protokol orientovaný na připojení, BeginConnect metoda spustí asynchronní požadavek na připojení k koncovému objektu určenému parametrem remoteEP . Pokud používáte protokol bez připojení, BeginConnect nástroj vytvoří výchozího vzdáleného hostitele.

Zpětné volání, které se implementuje AsyncCallback do BeginConnect , můžete předat, abyste dostali oznámení o dokončení operace připojení. Všimněte si, že pokud podkladová síťová sada dokončí operaci synchronně, může být zpětné volání spuštěno vložené během volání metody BeginConnect. V tomto případě CompletedSynchronously bude vlastnost vrácena IAsyncResult nastavena na , true aby bylo možné označit, že metoda byla dokončena synchronně. AsyncState K získání objektu stavu předaného BeginConnect metodě použijte vlastnost IAsyncResult .

Operace BeginConnect musí být dokončena voláním EndConnect metody . Metoda je obvykle vyvolána poskytnutým AsyncCallback delegátem. EndConnect až do dokončení operace zablokuje volající vlákno.

Pokud používáte protokol bez připojení, například UDP, nemusíte před odesláním a příjmem dat volat BeginConnect . Ke komunikaci se vzdáleným hostitelem můžete použít a BeginSendToBeginReceiveFrom . Pokud zavoláte BeginConnect, všechny datagramy, které přicházejí z jiné než zadané výchozí adresy, budou zahozeny. 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 nemůžete, BeginConnect vyvolá chybu SocketException.

Pokud používáte protokol orientovaný na připojení a před voláním BeginConnectnevoláte Bind , přiřadí příslušný poskytovatel služeb nejvhodnější místní síťovou adresu a číslo portu. Pokud používáte protokol bez připojení, poskytovatel služeb nepřiřadí místní síťovou adresu a číslo portu, dokud nezavoláte metodu BeginSend nebo ReceiveFrom . Pokud chcete změnit výchozího vzdáleného hostitele, zavolejte metodu BeginConnect znovu s požadovaným koncovým bodem.

Pokud chcete zrušit čekající volání BeginConnect metody, zavřete Socket. Close Když je volána metoda v době, kdy probíhá asynchronní operace, je volána zpětná volání poskytnutá BeginConnect metodě. Následné volání EndConnect metody vyvolá ObjectDisposedException (před .NET 7) nebo SocketException (v rozhraní .NET 7+) označující, že operace byla zrušena.

Poznámka

Pokud se zobrazí SocketException, použijte SocketException.ErrorCode vlastnost k získání konkrétního kódu chyby.

Poznámka

Pokud byl tento soket dříve odpojen, BeginConnect musí být volán ve vlákně, které se neukončilo, dokud se operace nedokončila. Jedná se o omezení základního poskytovatele.

Poznámka

Tento člen poskytuje trasovací informace, když je ve vaší aplikaci povoleno trasování sítě. Další informace najdete v tématu Trasování sítě v rozhraní .NET Framework.

Poznámka

Kontext spuštění (kontext zabezpečení, zosobněný uživatel a kontext volání) se ukládá do mezipaměti pro asynchronní Socket metody. Po prvním použití určitého kontextu (konkrétní asynchronní Socket metoda, konkrétní Socket instance a konkrétní zpětné volání) dojde při dalších použitích tohoto kontextu ke zlepšení výkonu.

Viz také

Platí pro

BeginConnect(String, Int32, AsyncCallback, Object)

Zdroj:
Socket.cs
Zdroj:
Socket.cs
Zdroj:
Socket.cs

Zahájí asynchronní požadavek na připojení ke vzdálenému hostiteli. Hostitel je určen názvem hostitele a číslem portu.

public:
 IAsyncResult ^ BeginConnect(System::String ^ host, int port, AsyncCallback ^ requestCallback, System::Object ^ state);
public IAsyncResult BeginConnect (string host, int port, AsyncCallback? requestCallback, object? state);
public IAsyncResult BeginConnect (string host, int port, AsyncCallback requestCallback, object state);
member this.BeginConnect : string * int * AsyncCallback * obj -> IAsyncResult
Public Function BeginConnect (host As String, port As Integer, requestCallback As AsyncCallback, state As Object) As IAsyncResult

Parametry

host
String

Název vzdáleného hostitele.

port
Int32

Číslo portu vzdáleného hostitele.

requestCallback
AsyncCallback

Delegát AsyncCallback , který odkazuje na metodu vyvolání po dokončení operace připojení.

state
Object

Uživatelem definovaný objekt, který obsahuje informace o operaci připojení. Tento objekt je po dokončení operace předán requestCallback delegátu.

Návraty

Odkazuje IAsyncResult na asynchronní připojení.

Výjimky

host je null.

Tato metoda je platná pro sokety v řadách InterNetwork nebo InterNetworkV6 .

Číslo portu není platné.

Objekt Socket byl umístěn do naslouchacího stavu voláním Listen(Int32), nebo již probíhá asynchronní operace.

Poznámky

Důležité

Toto je rozhraní API pro kompatibilitu. Pro nový vývoj nedoporučujeme používat metody APM (Begin* a End*). Místo toho použijte ekvivalenty založené na Task.

Pokud používáte protokol orientovaný na připojení, BeginConnect metoda spustí asynchronní požadavek na připojení k koncovému objektu určenému parametrem remoteEP . Pokud používáte protokol bez připojení, BeginConnect nástroj vytvoří výchozího vzdáleného hostitele.

Zpětné volání, které se implementuje AsyncCallback do BeginConnect , můžete předat, abyste dostali oznámení o dokončení operace připojení. Všimněte si, že pokud podkladová síťová sada dokončí operaci synchronně, může být zpětné volání spuštěno vložené během volání metody BeginConnect. V tomto případě CompletedSynchronously bude vlastnost vrácena IAsyncResult nastavena na , true aby bylo možné označit, že metoda byla dokončena synchronně. AsyncState K získání objektu stavu předaného BeginConnect metodě použijte vlastnost IAsyncResult .

Operace BeginConnect musí být dokončena voláním EndConnect metody . Metoda je obvykle vyvolána poskytnutým AsyncCallback delegátem. EndConnect až do dokončení operace zablokuje volající vlákno.

Pokud používáte protokol bez připojení, například UDP, nemusíte před odesláním a příjmem dat volat BeginConnect . Ke komunikaci se vzdáleným hostitelem můžete použít a BeginSendToBeginReceiveFrom . Pokud zavoláte BeginConnect, všechny datagramy, které přicházejí z jiné než zadané výchozí adresy, budou zahozeny. 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 nemůžete, BeginConnect vyvolá chybu SocketException.

Pokud používáte protokol orientovaný na připojení a před voláním BeginConnectnevoláte Bind , přiřadí příslušný poskytovatel služeb nejvhodnější místní síťovou adresu a číslo portu. Pokud používáte protokol bez připojení, poskytovatel služeb nepřiřadí místní síťovou adresu a číslo portu, dokud nezavoláte metodu BeginSend nebo ReceiveFrom . Pokud chcete změnit výchozího vzdáleného hostitele, zavolejte metodu BeginConnect znovu s požadovaným koncovým bodem.

Pokud chcete zrušit čekající volání BeginConnect metody, zavřete Socket. Close Když je volána metoda v době, kdy probíhá asynchronní operace, je volána zpětná volání poskytnutá BeginConnect metodě. Následné volání EndConnect metody vyvolá ObjectDisposedException (před .NET 7) nebo SocketException (v rozhraní .NET 7+) označující, že operace byla zrušena.

Poznámka

Pokud se zobrazí SocketException, použijte SocketException.ErrorCode vlastnost k získání konkrétního kódu chyby.

Poznámka

Pokud byl tento soket dříve odpojen, BeginConnect musí být volán ve vlákně, které se neukončilo, dokud se operace nedokončila. Jedná se o omezení základního poskytovatele.

Poznámka

Tento člen poskytuje trasovací informace, když je ve vaší aplikaci povoleno trasování sítě. Další informace najdete v tématu Trasování sítě v rozhraní .NET Framework.

Poznámka

Kontext spuštění (kontext zabezpečení, zosobněný uživatel a kontext volání) se ukládá do mezipaměti pro asynchronní Socket metody. Po prvním použití určitého kontextu (konkrétní asynchronní Socket metoda, konkrétní Socket instance a konkrétní zpětné volání) dojde při dalších použitích tohoto kontextu ke zlepšení výkonu.

Viz také

Platí pro