Socket.Connect Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt een verbinding tot stand gebracht met een externe host.
Overloads
| Name | Description |
|---|---|
| Connect(String, Int32) |
Hiermee wordt een verbinding tot stand gebracht met een externe host. De host wordt opgegeven door een hostnaam en een poortnummer. |
| Connect(IPAddress[], Int32) |
Hiermee wordt een verbinding tot stand gebracht met een externe host. De host wordt opgegeven door een matrix met IP-adressen en een poortnummer. |
| Connect(IPAddress, Int32) |
Hiermee wordt een verbinding tot stand gebracht met een externe host. De host wordt opgegeven door een IP-adres en een poortnummer. |
| Connect(EndPoint) |
Hiermee wordt een verbinding tot stand gebracht met een externe host. |
Connect(String, Int32)
Hiermee wordt een verbinding tot stand gebracht met een externe host. De host wordt opgegeven door een hostnaam en een poortnummer.
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)
Parameters
- host
- String
De naam van de externe host.
- port
- Int32
Het poortnummer van de externe host.
Uitzonderingen
host is null.
Het poortnummer is ongeldig.
Er is een fout opgetreden bij het openen van de socket.
De Socket is gesloten.
Het stopcontact bevindt zich niet in de InterNetwork of InterNetworkV6 families.
De Socket is in een luisterstatus geplaatst door te bellen Listen(Int32).
Voorbeelden
Het volgende codevoorbeeld maakt verbinding met een extern eindpunt en controleert vervolgens de verbinding.
// 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");
}
Opmerkingen
Als u een verbindingsgeoriënteerd protocol zoals TCP gebruikt, brengt de Connect methode synchroon een netwerkverbinding tot stand tussen LocalEndPoint en de opgegeven externe host. Als u een protocol zonder verbinding gebruikt, Connect maakt u een standaard externe host. Nadat u hebt aangeroepen Connect , kunt u met de Send methode gegevens verzenden naar het externe apparaat of gegevens ontvangen van het externe apparaat met de Receive methode.
Als u een verbindingsloos protocol zoals UDP gebruikt, hoeft u niet aan te roepen Connect voordat u gegevens verzendt en ontvangt. U kunt deze gebruiken SendTo en ReceiveFrom synchroon communiceren met een externe host. Als u wel gegevensgrammen aanroept Connect die afkomstig zijn van een ander adres dan de opgegeven standaardwaarde, worden verwijderd. Als u de standaard externe host wilt instellen op een broadcast-adres, moet u eerst de SetSocketOption methode aanroepen en de socketoptie SocketOptionName.Broadcastinstellen op , of Connect een SocketException. Als u een SocketExceptionontvangt, gebruikt u de SocketException.ErrorCode eigenschap om de specifieke foutcode te verkrijgen. Nadat u deze code hebt verkregen, raadpleegt u de Windows Sockets versie 2 API-foutcode documentatie voor een gedetailleerde beschrijving van de fout.
De Connect methode wordt geblokkeerd, tenzij u de Blocking eigenschap false specifiek instelt op voordat u aanroept Connect. Als u een verbindingsgeoriënteerd protocol zoals TCP gebruikt en u blokkeren uitschakelt, Connect treedt er een SocketException fout op omdat er tijd nodig is om de verbinding te maken. Verbindingsloze protocollen genereren geen uitzondering omdat ze gewoon een standaard externe host tot stand brengen. U kunt SocketException.ErrorCode de specifieke foutcode verkrijgen. Nadat u deze code hebt verkregen, raadpleegt u de Windows Sockets versie 2 API-foutcode documentatie voor een gedetailleerde beschrijving van de fout. Als de fout WSAEWOULDBLOCK retourneert, is de externe hostverbinding gestart door een verbindingsgeoriënteerd Socket, maar is deze nog niet voltooid. Gebruik de Poll methode om te bepalen wanneer de Socket verbinding is voltooid.
Als IPv6 is ingeschakeld en de Connect(String, Int32) methode wordt aangeroepen om verbinding te maken met een host die wordt omgezet naar zowel IPv6- als IPv4-adressen, wordt de verbinding met het IPv6-adres eerst geprobeerd vóór het IPv4-adres. Dit kan het gevolg zijn van het vertragen van de tijd om de verbinding tot stand te brengen als de host niet luistert op het IPv6-adres.
Note
Als u een verbindingsgeoriënteerd protocol gebruikt en niet hebt aangeroepen voordat u aanroept BindConnect, wijst de onderliggende serviceprovider het lokale netwerkadres en poortnummer toe. Als u een verbindingsloos protocol gebruikt, wijst de serviceprovider geen lokaal netwerkadres en poortnummer toe totdat u een verzend- of ontvangstbewerking hebt voltooid. Als u de standaard externe host wilt wijzigen, roept Connect u het gewenste eindpunt opnieuw aan.
Note
Als de verbinding met de socket eerder is verbroken, kunt u deze methode niet gebruiken om de verbinding te herstellen. Gebruik een van de asynchrone BeginConnect methoden om opnieuw verbinding te maken. Dit is een beperking van de onderliggende provider.
Note
Dit lid voert traceringsgegevens uit wanneer u netwerktracering inschakelt in uw toepassing. Zie Network Tracing in .NET Framework voor meer informatie.
Van toepassing op
Connect(IPAddress[], Int32)
Hiermee wordt een verbinding tot stand gebracht met een externe host. De host wordt opgegeven door een matrix met IP-adressen en een poortnummer.
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)
Parameters
- addresses
- IPAddress[]
De IP-adressen van de externe host.
- port
- Int32
Het poortnummer van de externe host.
Uitzonderingen
addresses is null.
Het poortnummer is ongeldig.
Er is een fout opgetreden bij het openen van de socket.
De Socket is gesloten.
Het stopcontact bevindt zich niet in de InterNetwork of InterNetworkV6 families.
De lengte is addresses nul.
De Socket is in een luisterstatus geplaatst door te bellen Listen(Int32).
Voorbeelden
Het volgende codevoorbeeld maakt verbinding met een extern eindpunt en controleert vervolgens de verbinding.
// 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");
}
Opmerkingen
Deze methode wordt doorgaans onmiddellijk na een aanroep naar GetHostAddressesgebruikt, waardoor meerdere IP-adressen voor één host kunnen worden geretourneerd. Als u een verbindingsgeoriënteerd protocol zoals TCP gebruikt, brengt de Connect methode synchroon een netwerkverbinding tot stand tussen LocalEndPoint en het opgegeven externe eindpunt. Als u een protocol zonder verbinding gebruikt, Connect maakt u een standaard externe host. Nadat u hebt aangeroepen Connect , kunt u met de Send methode gegevens verzenden naar het externe apparaat of gegevens ontvangen van het externe apparaat met de Receive methode.
Als u een verbindingsloos protocol zoals UDP gebruikt, hoeft u niet aan te roepen Connect voordat u gegevens verzendt en ontvangt. U kunt deze gebruiken SendTo en ReceiveFrom synchroon communiceren met een externe host. Als u wel gegevensgrammen aanroept Connect die afkomstig zijn van een ander adres dan de opgegeven standaardwaarde, worden verwijderd. Als u de standaard externe host wilt instellen op een broadcast-adres, moet u eerst de SetSocketOption methode aanroepen en de socketoptie SocketOptionName.Broadcastinstellen op , of Connect een SocketException. Als u een SocketExceptionontvangt, gebruikt u de SocketException.ErrorCode eigenschap om de specifieke foutcode te verkrijgen. Nadat u deze code hebt verkregen, raadpleegt u de Windows Sockets versie 2 API-foutcode documentatie voor een gedetailleerde beschrijving van de fout.
Connect de methode wordt geblokkeerd, tenzij u de Blocking eigenschap false specifiek instelt op voordat u aanroept Connect. Als u een verbindingsgeoriënteerd protocol zoals TCP gebruikt en u blokkering uitschakelt, Connect treedt er een SocketException fout op omdat er tijd nodig is om de verbinding te maken. Verbindingsloze protocollen genereren geen uitzondering omdat ze gewoon een standaard externe host tot stand brengen. U kunt SocketException.ErrorCode de specifieke foutcode verkrijgen. Nadat u deze code hebt verkregen, raadpleegt u de Windows Sockets versie 2 API-foutcode documentatie voor een gedetailleerde beschrijving van de fout. Als de fout WSAEWOULDBLOCK retourneert, is de externe hostverbinding gestart door een verbindingsgeoriënteerd Socket, maar is deze nog niet voltooid. Gebruik de Poll methode om te bepalen wanneer de Socket verbinding is voltooid.
Note
Als u een verbindingsgeoriënteerd protocol gebruikt en niet hebt aangeroepen voordat u aanroept BindConnect, wijst de onderliggende serviceprovider het adres en het poortnummer van het lokale netwerk toe. Als u een verbindingsloos protocol gebruikt, wijst de serviceprovider geen lokaal netwerkadres en poortnummer toe totdat u een verzend- of ontvangstbewerking hebt voltooid. Als u de standaard externe host wilt wijzigen, roept Connect u het gewenste eindpunt opnieuw aan.
Note
Als de verbinding met de socket eerder is verbroken, kunt u deze methode niet gebruiken om de verbinding te herstellen. Gebruik een van de asynchrone BeginConnect methoden om opnieuw verbinding te maken. Dit is een beperking van de onderliggende provider.
Note
Dit lid voert traceringsgegevens uit wanneer u netwerktracering inschakelt in uw toepassing. Zie Network Tracing in .NET Framework voor meer informatie.
Van toepassing op
Connect(IPAddress, Int32)
Hiermee wordt een verbinding tot stand gebracht met een externe host. De host wordt opgegeven door een IP-adres en een poortnummer.
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)
Parameters
- address
- IPAddress
Het IP-adres van de externe host.
- port
- Int32
Het poortnummer van de externe host.
Uitzonderingen
address is null.
Het poortnummer is ongeldig.
Er is een fout opgetreden bij het openen van de socket.
De Socket is gesloten.
Deze methode is geldig voor sockets in de InterNetwork of InterNetworkV6 families.
De lengte is address nul.
De Socket is in een luisterstatus geplaatst door te bellen Listen(Int32).
Voorbeelden
Het volgende codevoorbeeld maakt verbinding met een extern eindpunt en controleert vervolgens de verbinding.
// 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");
}
Opmerkingen
Als u een verbindingsgeoriënteerd protocol zoals TCP gebruikt, brengt de Connect methode synchroon een netwerkverbinding tot stand tussen LocalEndPoint en het opgegeven externe eindpunt. Als u een protocol zonder verbinding gebruikt, Connect maakt u een standaard externe host. Nadat u hebt aangeroepen Connect , kunt u met de Send methode gegevens verzenden naar het externe apparaat of gegevens ontvangen van het externe apparaat met de Receive methode.
Als u een verbindingsloos protocol zoals UDP gebruikt, hoeft u niet aan te roepen Connect voordat u gegevens verzendt en ontvangt. U kunt deze gebruiken SendTo en ReceiveFrom synchroon communiceren met een externe host. Als u wel gegevensgrammen aanroept Connect die afkomstig zijn van een ander adres dan de opgegeven standaardwaarde, worden verwijderd. Als u de standaard externe host wilt instellen op een broadcast-adres, moet u eerst de SetSocketOption methode aanroepen en de socketoptie SocketOptionName.Broadcastinstellen op , of Connect een SocketException. Als u een SocketExceptionontvangt, gebruikt u de SocketException.ErrorCode eigenschap om de specifieke foutcode te verkrijgen. Nadat u deze code hebt verkregen, raadpleegt u de Windows Sockets versie 2 API-foutcode documentatie voor een gedetailleerde beschrijving van de fout.
Connect de methode wordt geblokkeerd, tenzij u de Blocking eigenschap false specifiek instelt op voordat u aanroept Connect. Als u een verbindingsgeoriënteerd protocol zoals TCP gebruikt en u blokkering uitschakelt, Connect treedt er een SocketException fout op omdat er tijd nodig is om de verbinding te maken. Verbindingsloze protocollen genereren geen uitzondering omdat ze gewoon een standaard externe host tot stand brengen. U kunt SocketException.ErrorCode de specifieke foutcode verkrijgen. Nadat u deze code hebt verkregen, raadpleegt u de Windows Sockets versie 2 API-foutcode documentatie voor een gedetailleerde beschrijving van de fout. Als de fout WSAEWOULDBLOCK retourneert, is de externe hostverbinding gestart door een verbindingsgeoriënteerd Socket, maar is deze nog niet voltooid. Gebruik de Poll methode om te bepalen wanneer de Socket verbinding is voltooid.
Note
Als u een verbindingsgeoriënteerd protocol gebruikt en niet hebt aangeroepen voordat u aanroept BindConnect, wijst de onderliggende serviceprovider het adres en het poortnummer van het lokale netwerk toe. Als u een verbindingsloos protocol gebruikt, wijst de serviceprovider geen lokaal netwerkadres en poortnummer toe totdat u een verzend- of ontvangstbewerking hebt voltooid. Als u de standaard externe host wilt wijzigen, roept Connect u het gewenste eindpunt opnieuw aan.
Note
Als de verbinding met de socket eerder is verbroken, kunt u deze methode niet gebruiken om de verbinding te herstellen. Gebruik een van de asynchrone BeginConnect methoden om opnieuw verbinding te maken. Dit is een beperking van de onderliggende provider.
Note
Dit lid voert traceringsgegevens uit wanneer u netwerktracering inschakelt in uw toepassing. Zie Network Tracing in .NET Framework voor meer informatie.
Van toepassing op
Connect(EndPoint)
Hiermee wordt een verbinding tot stand gebracht met een externe host.
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)
Parameters
Uitzonderingen
remoteEP is null.
Er is een fout opgetreden bij het openen van de socket.
De Socket is gesloten.
Een aanroeper hoger in de aanroepstack heeft geen machtiging voor de aangevraagde bewerking.
De Socket is in een luisterstatus geplaatst door te bellen Listen(Int32).
Voorbeelden
Het volgende codevoorbeeld maakt verbinding met een extern eindpunt en controleert vervolgens de verbinding.
// .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
Opmerkingen
Als u een verbindingsgeoriënteerd protocol zoals TCP gebruikt, brengt de Connect methode synchroon een netwerkverbinding tot stand tussen LocalEndPoint en het opgegeven externe eindpunt. Als u een protocol zonder verbinding gebruikt, Connect maakt u een standaard externe host. Nadat u hebt aangeroepen Connect, kunt u gegevens verzenden naar het externe apparaat met de Send methode of gegevens ontvangen van het externe apparaat met de Receive methode.
Als u een verbindingsloos protocol zoals UDP gebruikt, hoeft u niet aan te roepen Connect voordat u gegevens verzendt en ontvangt. U kunt deze gebruiken SendTo en ReceiveFrom synchroon communiceren met een externe host. Als u aanroept Connect, worden gegevensgrammen die afkomstig zijn van een ander adres dan de opgegeven standaardwaarde, verwijderd. Als u de standaard externe host wilt instellen op een broadcast-adres, moet u eerst de SetSocketOption methode aanroepen en de socketoptie SocketOptionName.Broadcastinstellen op , of Connect een SocketException. Als u een SocketExceptionontvangt, gebruikt u de SocketException.ErrorCode eigenschap om de specifieke foutcode te verkrijgen. Nadat u deze code hebt verkregen, raadpleegt u de Windows Sockets versie 2 API-foutcode documentatie voor een gedetailleerde beschrijving van de fout.
De Connect methode wordt geblokkeerd, tenzij u de Blocking eigenschap false specifiek instelt op voordat u aanroept Connect. Als u een verbindingsgeoriënteerd protocol zoals TCP gebruikt en u blokkering uitschakelt, Connect treedt er een SocketException fout op omdat er tijd nodig is om de verbinding te maken. Verbindingsloze protocollen genereren geen uitzondering omdat ze gewoon een standaard externe host tot stand brengen. U kunt SocketException.ErrorCode de specifieke foutcode verkrijgen. Nadat u deze code hebt verkregen, raadpleegt u de Windows Sockets versie 2 API-foutcode documentatie voor een gedetailleerde beschrijving van de fout. Als de fout WSAEWOULDBLOCK retourneert, is de externe hostverbinding gestart door een verbindingsgeoriënteerd Socket, maar is deze nog niet voltooid. Gebruik de Poll methode om te bepalen wanneer de Socket verbinding is voltooid.
Note
Als u een verbindingsgeoriënteerd protocol gebruikt en niet hebt aangeroepen voordat u aanroept BindConnect, wijst de onderliggende serviceprovider het adres en het poortnummer van het lokale netwerk toe. Als u een verbindingsloos protocol gebruikt, wijst de serviceprovider geen lokaal netwerkadres en poortnummer toe totdat u een verzend- of ontvangstbewerking hebt voltooid. Als u de standaard externe host wilt wijzigen, roept Connect u het gewenste eindpunt opnieuw aan.
Note
Als de verbinding met de socket eerder is verbroken, kunt u deze methode niet gebruiken om de verbinding te herstellen. Gebruik een van de asynchrone BeginConnect methoden om opnieuw verbinding te maken. Dit is een beperking van de onderliggende provider.
Note
Dit lid voert traceringsgegevens uit wanneer u netwerktracering inschakelt in uw toepassing. Zie Network Tracing in .NET Framework voor meer informatie.
Zie ook
- 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)