Socket.Connect 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í.
Vytvoří připojení ke vzdálenému hostiteli.
Přetížení
| Name | Description |
|---|---|
| Connect(EndPoint) |
Vytvoří připojení ke vzdálenému hostiteli. |
| Connect(IPAddress, Int32) |
Vytvoří připojení ke vzdálenému hostiteli. Hostitel je určen IP adresou a číslem portu. |
| Connect(IPAddress[], Int32) |
Vytvoří připojení ke vzdálenému hostiteli. Hostitel je určen polem IP adres a číslem portu. |
| Connect(String, Int32) |
Vytvoří připojení ke vzdálenému hostiteli. Hostitel je určen názvem hostitele a číslem portu. |
Connect(EndPoint)
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
Vytvoří připojení ke vzdálenému hostiteli.
public:
void Connect(System::Net::EndPoint ^ remoteEP);
public void Connect(System.Net.EndPoint remoteEP);
member this.Connect : System.Net.EndPoint -> unit
Public Sub Connect (remoteEP As EndPoint)
Parametry
Výjimky
remoteEP je null.
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.
Byl Socket umístěn ve stavu naslouchání voláním Listen(Int32).
Příklady
Následující příklad kódu se připojí ke vzdálenému koncovému bodu a pak ověří připojení.
// .Connect throws an exception if unsuccessful
client.Connect(anEndPoint);
// This is how you can determine whether a socket is still connected.
bool blockingState = client.Blocking;
try
{
byte [] tmp = new byte[1];
client.Blocking = false;
client.Send(tmp, 0, 0);
Console.WriteLine("Connected!");
}
catch (SocketException e)
{
// 10035 == WSAEWOULDBLOCK
if (e.NativeErrorCode.Equals(10035))
{
Console.WriteLine("Still Connected, but the Send would block");
}
else
{
Console.WriteLine("Disconnected: error code {0}!", e.NativeErrorCode);
}
}
finally
{
client.Blocking = blockingState;
}
Console.WriteLine("Connected: {0}", client.Connected);
' .Connect throws an exception if unsuccessful
client.Connect(anEndPoint)
' This is how you can determine whether a socket is still connected.
Dim blockingState As Boolean = client.Blocking
Try
Dim tmp(0) As Byte
client.Blocking = False
client.Send(tmp, 0, 0)
Console.WriteLine("Connected!")
Catch e As SocketException
' 10035 == WSAEWOULDBLOCK
If e.NativeErrorCode.Equals(10035) Then
Console.WriteLine("Still Connected, but the Send would block")
Else
Console.WriteLine("Disconnected: error code {0}!", e.NativeErrorCode)
End If
Finally
client.Blocking = blockingState
End Try
Console.WriteLine("Connected: {0}", client.Connected)
End Sub
Poznámky
Pokud používáte protokol orientovaný na připojení, například TCP, Connect metoda synchronně vytvoří síťové připojení mezi LocalEndPoint a zadaným vzdáleným koncovým bodem. Pokud používáte protokol bez připojení, Connect naváže se výchozí vzdálený hostitel. Po volání Connectmůžete pomocí metody odesílat data do vzdáleného zařízení Send nebo přijímat data ze vzdáleného zařízení pomocí Receive metody.
Pokud používáte protokol bez připojení, jako je UDP, nemusíte volat Connect před odesíláním a příjmem dat. Můžete použít SendTo a ReceiveFrom synchronně komunikovat se vzdáleným hostitelem. Pokud zavoláte Connect, všechny datagramy, které přicházejí z jiné adresy, než je zadaná výchozí hodnota, se zahodí. Pokud chcete nastavit výchozího vzdáleného hostitele na adresu všesměrového vysílání, musíte nejprve volat metodu SetSocketOption a nastavit možnost soketu na SocketOptionName.Broadcast, nebo Connect vyvolá SocketException. Pokud se zobrazí kód SocketExceptionchyby, 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.
Metoda Connect bude blokovat, pokud výslovně nenastavíte Blocking vlastnost false před voláním Connect. Pokud používáte protokol orientovaný na připojení, jako je TCP, a zakážete blokování, vyvolá SocketException chybu, Connect protože potřebuje čas na vytvoření připojení. Protokoly bez připojení nevyvolají výjimku, protože jednoduše vytvoří výchozího vzdáleného hostitele. Můžete použít SocketException.ErrorCode 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. Pokud chyba vrátila WSAEWOULDBLOCK, připojení vzdáleného hostitele bylo zahájeno připojení orientované Socketna připojení , ale ještě se úspěšně nedokončilo. Použijte metodu Poll k určení, kdy je dokončeno Socket připojení.
Poznámka:
Pokud používáte protokol orientovaný na připojení a před voláním ConnectnezavolalBind, přiřadí poskytovatel základní služby 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 nedokončíte operaci odesílání nebo příjmu. Pokud chcete změnit výchozího vzdáleného hostitele, zavolejte Connect znovu s požadovaným koncovým bodem.
Poznámka:
Pokud byl soket dříve odpojen, nelze tuto metodu použít k obnovení připojení. K opětovnému připojení použijte jednu z asynchronních BeginConnect metod. Jedná se o omezení základního poskytovatele.
Poznámka:
Tento člen vypíše informace o trasování, když ve své aplikaci povolíte trasování sítě. Další informace naleznete v tématu Trasování sítě v rozhraní .NET Framework.
Viz také
- Send(Byte[], Int32, SocketFlags)
- SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Receive(Byte[], Int32, SocketFlags)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- LocalEndPoint
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
- Blocking
- Poll(Int32, SelectMode)
Platí pro
Connect(IPAddress, Int32)
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
Vytvoří připojení ke vzdálenému hostiteli. Hostitel je určen IP adresou a číslem portu.
public:
void Connect(System::Net::IPAddress ^ address, int port);
public void Connect(System.Net.IPAddress address, int port);
member this.Connect : System.Net.IPAddress * int -> unit
Public Sub Connect (address As IPAddress, port As Integer)
Parametry
- address
- IPAddress
IP adresa vzdáleného hostitele.
- port
- Int32
Číslo portu vzdáleného hostitele.
Výjimky
address je null.
Číslo portu není platné.
Při pokusu o přístup k soketu došlo k chybě.
Ta Socket byla uzavřena.
Tato metoda je platná pro sokety v InterNetwork řadách nebo InterNetworkV6 pro rodiny.
Délka address je nula.
Byl Socket umístěn ve stavu naslouchání voláním Listen(Int32).
Příklady
Následující příklad kódu se připojí ke vzdálenému koncovému bodu a pak ověří připojení.
// Synchronous connect using IPAddress to resolve the
// host name.
public static void Connect1(string host, int port)
{
IPAddress[] IPs = Dns.GetHostAddresses(host);
Socket s = new Socket(AddressFamily.InterNetwork,
SocketType.Stream,
ProtocolType.Tcp);
Console.WriteLine("Establishing Connection to {0}",
host);
s.Connect(IPs[0], port);
Console.WriteLine("Connection established");
}
Poznámky
Pokud používáte protokol orientovaný na připojení, například TCP, Connect metoda synchronně vytvoří síťové připojení mezi LocalEndPoint a zadaným vzdáleným koncovým bodem. Pokud používáte protokol bez připojení, Connect naváže se výchozí vzdálený hostitel. Po volání Connect můžete odesílat data do vzdáleného zařízení metodou Send nebo přijímat data ze vzdáleného zařízení pomocí Receive metody.
Pokud používáte protokol bez připojení, jako je UDP, nemusíte volat Connect před odesíláním a příjmem dat. Můžete použít SendTo a ReceiveFrom synchronně komunikovat se vzdáleným hostitelem. Pokud zavoláte Connect jakékoli datagramy, které přicházejí z jiné adresy, než je zadaná výchozí hodnota, budou zahozeny. Pokud chcete nastavit výchozího vzdáleného hostitele na adresu všesměrového vysílání, musíte nejprve volat metodu SetSocketOption a nastavit možnost soketu na SocketOptionName.Broadcast, nebo Connect vyvolá SocketException. Pokud se zobrazí kód SocketExceptionchyby, 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.
Connect metoda bude blokovat, pokud výslovně nenastavíte Blocking vlastnost false před voláním Connect. Pokud používáte protokol orientovaný na připojení, jako je TCP, a zakážete blokování, vyvolá SocketException chybu, Connect protože potřebuje čas na vytvoření připojení. Protokoly bez připojení nevyvolají výjimku, protože jednoduše vytvoří výchozího vzdáleného hostitele. Můžete použít SocketException.ErrorCode 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. Pokud chyba vrátila WSAEWOULDBLOCK, připojení vzdáleného hostitele bylo zahájeno připojení orientované Socketna připojení , ale ještě se úspěšně nedokončilo. Použijte metodu Poll k určení, kdy je dokončeno Socket připojení.
Poznámka:
Pokud používáte protokol orientovaný na připojení a před voláním ConnectnezavolalBind, přiřadí poskytovatel základní služby 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 nedokončíte operaci odesílání nebo příjmu. Pokud chcete změnit výchozího vzdáleného hostitele, zavolejte Connect znovu s požadovaným koncovým bodem.
Poznámka:
Pokud byl soket dříve odpojen, nelze tuto metodu použít k obnovení připojení. K opětovnému připojení použijte jednu z asynchronních BeginConnect metod. Jedná se o omezení základního poskytovatele.
Poznámka:
Tento člen vypíše informace o trasování, když ve své aplikaci povolíte trasování sítě. Další informace naleznete v tématu Trasování sítě v rozhraní .NET Framework.
Platí pro
Connect(IPAddress[], Int32)
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
Vytvoří připojení ke vzdálenému hostiteli. Hostitel je určen polem IP adres a číslem portu.
public:
void Connect(cli::array <System::Net::IPAddress ^> ^ addresses, int port);
public void Connect(System.Net.IPAddress[] addresses, int port);
member this.Connect : System.Net.IPAddress[] * int -> unit
Public Sub Connect (addresses As IPAddress(), port As Integer)
Parametry
- addresses
- IPAddress[]
IP adresy vzdáleného hostitele.
- port
- Int32
Číslo portu vzdáleného hostitele.
Výjimky
addresses je null.
Číslo portu není platné.
Při pokusu o přístup k soketu došlo k chybě.
Ta Socket byla uzavřena.
Soket není v rodině ani InterNetwork v rodiněInterNetworkV6.
Délka addresses je nula.
Byl Socket umístěn ve stavu naslouchání voláním Listen(Int32).
Příklady
Následující příklad kódu se připojí ke vzdálenému koncovému bodu a pak ověří připojení.
// Synchronous connect using Dns.GetHostAddresses to
// resolve the host name.
public static void Connect2(string host, int port)
{
IPAddress[] IPs = Dns.GetHostAddresses(host);
Socket s = new Socket(AddressFamily.InterNetwork,
SocketType.Stream,
ProtocolType.Tcp);
Console.WriteLine("Establishing Connection to {0}",
host);
s.Connect(IPs, port);
Console.WriteLine("Connection established");
}
Poznámky
Tato metoda se obvykle používá okamžitě po volání GetHostAddresses, která může vrátit více IP adres pro jednoho hostitele. Pokud používáte protokol orientovaný na připojení, například TCP, Connect metoda synchronně vytvoří síťové připojení mezi LocalEndPoint a zadaným vzdáleným koncovým bodem. Pokud používáte protokol bez připojení, Connect naváže se výchozí vzdálený hostitel. Po volání Connect můžete odesílat data do vzdáleného zařízení metodou Send nebo přijímat data ze vzdáleného zařízení pomocí Receive metody.
Pokud používáte protokol bez připojení, jako je UDP, nemusíte volat Connect před odesíláním a příjmem dat. Můžete použít SendTo a ReceiveFrom synchronně komunikovat se vzdáleným hostitelem. Pokud zavoláte Connect jakékoli datagramy, které přicházejí z jiné adresy, než je zadaná výchozí hodnota, budou zahozeny. Pokud chcete nastavit výchozího vzdáleného hostitele na adresu všesměrového vysílání, musíte nejprve volat metodu SetSocketOption a nastavit možnost soketu na SocketOptionName.Broadcast, nebo Connect vyvolá SocketException. Pokud se zobrazí kód SocketExceptionchyby, 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.
Connect metoda bude blokovat, pokud výslovně nenastavíte Blocking vlastnost false před voláním Connect. Pokud používáte protokol orientovaný na připojení, jako je TCP, a zakážete blokování, vyvolá SocketException chybu, Connect protože potřebuje čas na vytvoření připojení. Protokoly bez připojení nevyvolají výjimku, protože jednoduše vytvoří výchozího vzdáleného hostitele. Můžete použít SocketException.ErrorCode 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. Pokud chyba vrátila WSAEWOULDBLOCK, připojení vzdáleného hostitele bylo zahájeno připojení orientované Socketna připojení , ale ještě se úspěšně nedokončilo. Použijte metodu Poll k určení, kdy je dokončeno Socket připojení.
Poznámka:
Pokud používáte protokol orientovaný na připojení a před voláním ConnectnezavolalBind, přiřadí poskytovatel základní služby 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 nedokončíte operaci odesílání nebo příjmu. Pokud chcete změnit výchozího vzdáleného hostitele, zavolejte Connect znovu s požadovaným koncovým bodem.
Poznámka:
Pokud byl soket dříve odpojen, nelze tuto metodu použít k obnovení připojení. K opětovnému připojení použijte jednu z asynchronních BeginConnect metod. Jedná se o omezení základního poskytovatele.
Poznámka:
Tento člen vypíše informace o trasování, když ve své aplikaci povolíte trasování sítě. Další informace naleznete v tématu Trasování sítě v rozhraní .NET Framework.
Platí pro
Connect(String, Int32)
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
Vytvoří připojení ke vzdálenému hostiteli. Hostitel je určen názvem hostitele a číslem portu.
public:
void Connect(System::String ^ host, int port);
public void Connect(string host, int port);
member this.Connect : string * int -> unit
Public Sub Connect (host As String, port As Integer)
Parametry
- host
- String
Název vzdáleného hostitele.
- port
- Int32
Číslo portu vzdáleného hostitele.
Výjimky
host je null.
Číslo portu není platné.
Při pokusu o přístup k soketu došlo k chybě.
Ta Socket byla uzavřena.
Soket není v rodině ani InterNetwork v rodiněInterNetworkV6.
Byl Socket umístěn ve stavu naslouchání voláním Listen(Int32).
Příklady
Následující příklad kódu se připojí ke vzdálenému koncovému bodu a pak ověří připojení.
// Synchronous connect using host name (resolved by the
// Connect call.)
public static void Connect3(string host, int port)
{
Socket s = new Socket(AddressFamily.InterNetwork,
SocketType.Stream,
ProtocolType.Tcp);
Console.WriteLine("Establishing Connection to {0}",
host);
s.Connect(host, port);
Console.WriteLine("Connection established");
}
Poznámky
Pokud používáte protokol orientovaný na připojení, například TCP, Connect metoda synchronně vytvoří síťové připojení mezi LocalEndPoint a zadaným vzdáleným hostitelem. Pokud používáte protokol bez připojení, Connect naváže se výchozí vzdálený hostitel. Po volání Connect můžete odesílat data do vzdáleného zařízení metodou Send nebo přijímat data ze vzdáleného zařízení pomocí Receive metody.
Pokud používáte protokol bez připojení, jako je UDP, nemusíte před odesíláním a příjmem dat volat Connect . Můžete použít SendTo a ReceiveFrom synchronně komunikovat se vzdáleným hostitelem. Pokud zavoláte Connect jakékoli datagramy, které přicházejí z jiné adresy, než je zadaná výchozí hodnota, budou zahozeny. Pokud chcete nastavit výchozího vzdáleného hostitele na adresu všesměrového vysílání, musíte nejprve volat metodu SetSocketOption a nastavit možnost soketu na SocketOptionName.Broadcast, nebo Connect vyvolá SocketException. Pokud se zobrazí kód SocketExceptionchyby, 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.
Metoda Connect bude blokovat, pokud výslovně nenastavíte Blocking vlastnost false před voláním Connect. Pokud používáte protokol orientovaný na připojení, jako je TCP, a zakážete blokování, vyvolá SocketException chybu, Connect protože potřebuje čas na vytvoření připojení. Protokoly bez připojení nevyvolají výjimku, protože jednoduše vytvoří výchozího vzdáleného hostitele. Můžete použít SocketException.ErrorCode 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. Pokud chyba vrátila WSAEWOULDBLOCK, připojení vzdáleného hostitele bylo zahájeno připojení orientované Socketna připojení , ale ještě se úspěšně nedokončilo. Použijte metodu Poll k určení, kdy je dokončeno Socket připojení.
Pokud je povolený protokol IPv6 a volá se Connect(String, Int32) metoda pro připojení k hostiteli, který se překládá na adresy IPv6 i IPv4, připojení k adrese IPv6 se nejprve pokusí před adresou IPv4. To může mít vliv na zpoždění času na navázání připojení, pokud hostitel nenaslouchá na adrese IPv6.
Poznámka:
Pokud používáte protokol orientovaný na připojení a před voláním Connectho nezavolalBind, přiřadí poskytovatel základní služby 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 nedokončíte operaci odesílání nebo příjmu. Pokud chcete změnit výchozího vzdáleného hostitele, zavolejte Connect znovu s požadovaným koncovým bodem.
Poznámka:
Pokud byl soket dříve odpojen, nelze tuto metodu použít k obnovení připojení. K opětovnému připojení použijte jednu z asynchronních BeginConnect metod. Jedná se o omezení základního poskytovatele.
Poznámka:
Tento člen vypíše informace o trasování, když ve své aplikaci povolíte trasování sítě. Další informace naleznete v tématu Trasování sítě v rozhraní .NET Framework.