Socket.Connect Methode

Definition

Stellt eine Verbindung mit einem Remotehost her.Establishes a connection to a remote host.

Überlädt

Connect(String, Int32)

Stellt eine Verbindung mit einem Remotehost her.Establishes a connection to a remote host. Der Host wird durch einen Hostnamen und eine Portnummer angegeben.The host is specified by a host name and a port number.

Connect(IPAddress[], Int32)

Stellt eine Verbindung mit einem Remotehost her.Establishes a connection to a remote host. Der Host wird durch ein Array von IP-Adressen und eine Portnummer angegeben.The host is specified by an array of IP addresses and a port number.

Connect(IPAddress, Int32)

Stellt eine Verbindung mit einem Remotehost her.Establishes a connection to a remote host. Der Host wird mit einer IP-Adresse und einer Portnummer angegeben.The host is specified by an IP address and a port number.

Connect(EndPoint)

Stellt eine Verbindung mit einem Remotehost her.Establishes a connection to a remote host.

Connect(String, Int32)

Stellt eine Verbindung mit einem Remotehost her.Establishes a connection to a remote host. Der Host wird durch einen Hostnamen und eine Portnummer angegeben.The host is specified by a host name and a port number.

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)

Parameter

host
String

Der Name des Remotehosts.The name of the remote host.

port
Int32

Die Portnummer des Remotehosts.The port number of the remote host.

Ausnahmen

host ist null.host is null.

Die Portnummer ist ungültig.The port number is not valid.

Fehler beim Versuch, auf den Socket zuzugreifen.An error occurred when attempting to access the socket.

Der Socket wurde geschlossen.The Socket has been closed.

Diese Methode gilt für Sockets der Familie InterNetwork oder InterNetworkV6.This method is valid for sockets in the InterNetwork or InterNetworkV6 families.

Der Socket wurde durch den Aufruf von Listen(Int32) in einem Wartezustand platziert.The Socket has been placed in a listening state by calling Listen(Int32).

Beispiele

Das folgende Codebeispiel stellt eine Verbindung mit einem Remote Endpunkt her und überprüft dann die Verbindung.The following code example connects to a remote endpoint and then verifies the connection.

// Synchronous connect using host name (resolved by the 
// Connect call.)
static void Connect3( String^ host, int port )
{
   Socket^ s = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp );
   Console::WriteLine( "Establishing Connection to {0}", host );
   s->Connect( host, port );
   Console::WriteLine( "Connection established" );
}

// 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");
}		

Hinweise

Wenn Sie ein Verbindungs orientiertes Protokoll wie z. b. TCP verwenden, stellt die Connect-Methode synchron eine Netzwerkverbindung zwischen LocalEndPoint und dem angegebenen Remote Host her.If you are using a connection-oriented protocol such as TCP, the Connect method synchronously establishes a network connection between LocalEndPoint and the specified remote host. Wenn Sie ein verbindungsloses Protokoll verwenden, stellt Connect einen Standard Remote Host her.If you are using a connectionless protocol, Connect establishes a default remote host. Nachdem Sie Connect aufgerufen haben, können Sie mit der Send-Methode Daten an das Remote Gerät senden oder Daten vom Remote Gerät mit der Receive-Methode empfangen.After you call Connect you can send data to the remote device with the Send method, or receive data from the remote device with the Receive method.

Wenn Sie ein verbindungsloses Protokoll (z. b. UDP) verwenden, müssen Sie Connect vor dem Senden und empfangen von Daten nicht aufzurufen.If you are using a connectionless protocol such as UDP, you do not have to call Connect before sending and receiving data. Sie können SendTo und ReceiveFrom verwenden, um synchron mit einem Remote Host zu kommunizieren.You can use SendTo and ReceiveFrom to synchronously communicate with a remote host. Wenn Sie Connect, werden alle Datagramme verworfen, die von einer anderen Adresse als der angegebenen Standardadresse eintreffen.If you do call Connect any datagrams that arrive from an address other than the specified default will be discarded. Wenn Sie den Standard-Remote Host auf eine Broadcast Adresse festlegen möchten, müssen Sie zuerst die SetSocketOption-Methode und die Socketoption auf SocketOptionName.Broadcastfestlegen, oder Connect löst eine SocketExceptionaus.If you want to set your default remote host to a broadcast address, you must first call the SetSocketOption method and set the socket option to SocketOptionName.Broadcast, or Connect will throw a SocketException. Wenn Sie erhalten eine SocketException, verwenden die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode zu erhalten.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. Nachdem Sie diesen Code abgerufen haben, finden Sie in der API-Fehlercode Dokumentation der Windows Sockets, Version 2 , eine ausführliche Beschreibung des Fehlers.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Connect Methode wird blockiert, es sei denn, Sie legen die Blocking-Eigenschaft vor dem Aufrufen von Connectexplizit auf false fest.Connect method will block, unless you specifically set the Blocking property to false prior to calling Connect. Wenn Sie ein Verbindungs orientiertes Protokoll wie TCP verwenden und die Blockierung deaktivieren, wird Connect eine SocketException auslösen, da es Zeit benötigt, um die Verbindung herzustellen.If you are using a connection-oriented protocol like TCP and you do disable blocking, Connect will throw a SocketException because it needs time to make the connection. Verbindungslose Protokolle lösen keine Ausnahme aus, da Sie einfach einen Standard-Remote Host einrichten.Connectionless protocols will not throw an exception because they simply establish a default remote host. Sie können SocketException.ErrorCode verwenden, um den spezifischen Fehlercode abzurufen.You can use SocketException.ErrorCode to obtain the specific error code. Nachdem Sie diesen Code abgerufen haben, finden Sie in der API-Fehlercode Dokumentation der Windows Sockets, Version 2 , eine ausführliche Beschreibung des Fehlers.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error. Wenn der Fehler "WSAEWOULDBLOCK" zurückgegeben wurde, wurde die Remote Host Verbindung von einem Verbindungs orientierten Socketinitiiert, aber noch nicht erfolgreich abgeschlossen.If the error returned WSAEWOULDBLOCK, the remote host connection has been initiated by a connection-oriented Socket, but has not yet completed successfully. Verwenden Sie die Poll-Methode, um zu bestimmen, wann die Socket die Verbindung hergestellt hat.Use the Poll method to determine when the Socket is finished connecting.

Wenn IPv6 aktiviert ist und die Connect(String, Int32)-Methode aufgerufen wird, um eine Verbindung mit einem Host herzustellen, der zu IPv6-und IPv4-Adressen aufgelöst wird, wird die Verbindung mit der IPv6-Adresse zuerst vor der IPv4-Adresse versucht.If IPv6 is enabled and the Connect(String, Int32) method is called to connect to a host that resolves to both IPv6 and IPv4 addresses, the connection to the IPv6 address will be attempted first before the IPv4 address. Dies kann dazu führen, dass sich die Zeit zum Herstellen der Verbindung verzögert, wenn der Host nicht an der IPv6-Adresse lauscht.This may have the effect of delaying the time to establish the connection if the host is not listening on the IPv6 address.

Hinweis

Wenn Sie ein Verbindungs orientiertes Protokoll verwenden und Bind vor dem Aufrufen von Connectnicht aufgerufen haben, weist der zugrunde liegende Dienstanbieter die Adresse und die Portnummer des lokalen Netzwerks zu.If you are using a connection-oriented protocol and did not call Bind before calling Connect, the underlying service provider will assign the local network address and port number. Wenn Sie ein verbindungsloses Protokoll verwenden, weist der Dienstanbieter erst dann eine lokale Netzwerkadresse und eine Portnummer zu, wenn Sie einen Sende-oder Empfangsvorgang ausführen.If you are using a connectionless protocol, the service provider will not assign a local network address and port number until you complete a send or receive operation. Wenn Sie den Standard-Remote Host ändern möchten, müssen Sie Connect erneut mit dem gewünschten Endpunkt abrufen.If you want to change the default remote host, call Connect again with the desired endpoint.

Hinweis

Wenn der Socket bereits getrennt wurde, können Sie diese Methode nicht verwenden, um die Verbindung wiederherzustellen.If the socket has been previously disconnected, then you cannot use this method to restore the connection. Verwenden Sie eine der asynchronen BeginConnect Methoden, um die Verbindung wiederherzustellen.Use one of the asynchronous BeginConnect methods to reconnect. Dies ist eine Einschränkung des zugrunde liegenden Anbieters.This is a limitation of the underlying provider.

Hinweis

Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren.This member outputs trace information when you enable network tracing in your application. Weitere Informationen finden Sie unter Netzwerk Ablauf Verfolgung in der .NET Framework.For more information, see Network Tracing in the .NET Framework.

Connect(IPAddress[], Int32)

Stellt eine Verbindung mit einem Remotehost her.Establishes a connection to a remote host. Der Host wird durch ein Array von IP-Adressen und eine Portnummer angegeben.The host is specified by an array of IP addresses and a port number.

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)

Parameter

addresses
IPAddress[]

Die IP-Adressen des Remotehosts.The IP addresses of the remote host.

port
Int32

Die Portnummer des Remotehosts.The port number of the remote host.

Ausnahmen

addresses ist null.addresses is null.

Die Portnummer ist ungültig.The port number is not valid.

Fehler beim Versuch, auf den Socket zuzugreifen.An error occurred when attempting to access the socket.

Der Socket wurde geschlossen.The Socket has been closed.

Diese Methode gilt für Sockets der Familie InterNetwork oder InterNetworkV6.This method is valid for sockets in the InterNetwork or InterNetworkV6 families.

Die Länge von address ist 0 (null).The length of address is zero.

Der Socket wurde durch den Aufruf von Listen(Int32) in einem Wartezustand platziert.The Socket has been placed in a listening state by calling Listen(Int32).

Beispiele

Das folgende Codebeispiel stellt eine Verbindung mit einem Remote Endpunkt her und überprüft dann die Verbindung.The following code example connects to a remote endpoint and then verifies the connection.

// Synchronous connect using Dns.ResolveToAddresses to 
// resolve the host name.
static void Connect2( String^ host, int port )
{
   array<IPAddress^>^IPs = Dns::GetHostAddresses( host );
   Socket^ s = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp );
   Console::WriteLine( "Establishing Connection to {0}", host );
   s->Connect( IPs, port );
   Console::WriteLine( "Connection established" );
}


// 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");
}		

Hinweise

Diese Methode wird in der Regel unmittelbar nach einem GetHostAddresses-aufrufzug verwendet, der mehrere IP-Adressen für einen einzelnen Host zurückgeben kann.This method is typically used immediately after a call to GetHostAddresses, which can return multiple IP addresses for a single host. Wenn Sie ein Verbindungs orientiertes Protokoll wie z. b. TCP verwenden, stellt die Connect-Methode synchron eine Netzwerkverbindung zwischen LocalEndPoint und dem angegebenen Remote Endpunkt her.If you are using a connection-oriented protocol such as TCP, the Connect method synchronously establishes a network connection between LocalEndPoint and the specified remote endpoint. Wenn Sie ein verbindungsloses Protokoll verwenden, stellt Connect einen Standard Remote Host her.If you are using a connectionless protocol, Connect establishes a default remote host. Nachdem Sie Connect aufgerufen haben, können Sie mit der Send-Methode Daten an das Remote Gerät senden oder Daten vom Remote Gerät mit der Receive-Methode empfangen.After you call Connect you can send data to the remote device with the Send method, or receive data from the remote device with the Receive method.

Wenn Sie ein verbindungsloses Protokoll (z. b. UDP) verwenden, müssen Sie Connect vor dem Senden und empfangen von Daten nicht aufzurufen.If you are using a connectionless protocol such as UDP, you do not have to call Connect before sending and receiving data. Sie können SendTo und ReceiveFrom verwenden, um synchron mit einem Remote Host zu kommunizieren.You can use SendTo and ReceiveFrom to synchronously communicate with a remote host. Wenn Sie Connect, werden alle Datagramme verworfen, die von einer anderen Adresse als der angegebenen Standardadresse eintreffen.If you do call Connect any datagrams that arrive from an address other than the specified default will be discarded. Wenn Sie den Standard-Remote Host auf eine Broadcast Adresse festlegen möchten, müssen Sie zuerst die SetSocketOption-Methode und die Socketoption auf SocketOptionName.Broadcastfestlegen, oder Connect löst eine SocketExceptionaus.If you want to set your default remote host to a broadcast address, you must first call the SetSocketOption method and set the socket option to SocketOptionName.Broadcast, or Connect will throw a SocketException. Wenn Sie erhalten eine SocketException, verwenden die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode zu erhalten.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. Nachdem Sie diesen Code abgerufen haben, finden Sie in der API-Fehlercode Dokumentation der Windows Sockets, Version 2 , eine ausführliche Beschreibung des Fehlers.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Connect Methode wird blockiert, es sei denn, Sie legen die Blocking-Eigenschaft vor dem Aufrufen von Connectexplizit auf false fest.Connect method will block, unless you specifically set the Blocking property to false prior to calling Connect. Wenn Sie ein Verbindungs orientiertes Protokoll wie TCP verwenden und die Blockierung deaktivieren, wird Connect eine SocketException auslösen, da es Zeit benötigt, um die Verbindung herzustellen.If you are using a connection-oriented protocol like TCP and you do disable blocking, Connect will throw a SocketException because it needs time to make the connection. Verbindungslose Protokolle lösen keine Ausnahme aus, da Sie einfach einen Standard-Remote Host einrichten.Connectionless protocols will not throw an exception because they simply establish a default remote host. Sie können SocketException.ErrorCode verwenden, um den spezifischen Fehlercode abzurufen.You can use SocketException.ErrorCode to obtain the specific error code. Nachdem Sie diesen Code abgerufen haben, finden Sie in der API-Fehlercode Dokumentation der Windows Sockets, Version 2 , eine ausführliche Beschreibung des Fehlers.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error. Wenn der Fehler "WSAEWOULDBLOCK" zurückgegeben wurde, wurde die Remote Host Verbindung von einem Verbindungs orientierten Socketinitiiert, aber noch nicht erfolgreich abgeschlossen.If the error returned WSAEWOULDBLOCK, the remote host connection has been initiated by a connection-oriented Socket, but has not yet completed successfully. Verwenden Sie die Poll-Methode, um zu bestimmen, wann die Socket die Verbindung hergestellt hat.Use the Poll method to determine when the Socket is finished connecting.

Hinweis

Wenn Sie ein Verbindungs orientiertes Protokoll verwenden und Bind vor dem Aufrufen von Connectnicht aufgerufen haben, weist der zugrunde liegende Dienstanbieter die Adresse und die Portnummer des lokalen Netzwerks zu.If you are using a connection-oriented protocol and did not call Bind before calling Connect, the underlying service provider will assign the local network address and port number. Wenn Sie ein verbindungsloses Protokoll verwenden, weist der Dienstanbieter erst dann eine lokale Netzwerkadresse und eine Portnummer zu, wenn Sie einen Sende-oder Empfangsvorgang ausführen.If you are using a connectionless protocol, the service provider will not assign a local network address and port number until you complete a send or receive operation. Wenn Sie den Standard-Remote Host ändern möchten, müssen Sie Connect erneut mit dem gewünschten Endpunkt abrufen.If you want to change the default remote host, call Connect again with the desired endpoint.

Hinweis

Wenn der Socket bereits getrennt wurde, können Sie diese Methode nicht verwenden, um die Verbindung wiederherzustellen.If the socket has been previously disconnected, then you cannot use this method to restore the connection. Verwenden Sie eine der asynchronen BeginConnect Methoden, um die Verbindung wiederherzustellen.Use one of the asynchronous BeginConnect methods to reconnect. Dies ist eine Einschränkung des zugrunde liegenden Anbieters.This is a limitation of the underlying provider.

Hinweis

Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren.This member outputs trace information when you enable network tracing in your application. Weitere Informationen finden Sie unter Netzwerk Ablauf Verfolgung in der .NET Framework.For more information, see Network Tracing in the .NET Framework.

Connect(IPAddress, Int32)

Stellt eine Verbindung mit einem Remotehost her.Establishes a connection to a remote host. Der Host wird mit einer IP-Adresse und einer Portnummer angegeben.The host is specified by an IP address and a port number.

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)

Parameter

address
IPAddress

Die IP-Adresse des Remotehosts.The IP address of the remote host.

port
Int32

Die Portnummer des Remotehosts.The port number of the remote host.

Ausnahmen

address ist null.address is null.

Die Portnummer ist ungültig.The port number is not valid.

Fehler beim Versuch, auf den Socket zuzugreifen.An error occurred when attempting to access the socket.

Der Socket wurde geschlossen.The Socket has been closed.

Diese Methode gilt für Sockets der Familie InterNetwork oder InterNetworkV6.This method is valid for sockets in the InterNetwork or InterNetworkV6 families.

Die Länge von address ist 0 (null).The length of address is zero.

Der Socket wurde durch den Aufruf von Listen(Int32) in einem Wartezustand platziert.The Socket has been placed in a listening state by calling Listen(Int32).

Beispiele

Das folgende Codebeispiel stellt eine Verbindung mit einem Remote Endpunkt her und überprüft dann die Verbindung.The following code example connects to a remote endpoint and then verifies the connection.

// Synchronous connect using IPAddress to resolve the 
// host name.
static void Connect1( String^ host, int port )
{
   array<IPAddress^>^IPs = Dns::GetHostAddresses( host );
   Socket^ s = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp );
   Console::WriteLine( "Establishing Connection to {0}", host );
   s->Connect( IPs[ 0 ], port );
   Console::WriteLine( "Connection established" );
}


       // 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");
       }		

Hinweise

Wenn Sie ein Verbindungs orientiertes Protokoll wie z. b. TCP verwenden, stellt die Connect-Methode synchron eine Netzwerkverbindung zwischen LocalEndPoint und dem angegebenen Remote Endpunkt her.If you are using a connection-oriented protocol such as TCP, the Connect method synchronously establishes a network connection between LocalEndPoint and the specified remote endpoint. Wenn Sie ein verbindungsloses Protokoll verwenden, stellt Connect einen Standard Remote Host her.If you are using a connectionless protocol, Connect establishes a default remote host. Nachdem Sie Connect aufgerufen haben, können Sie mit der Send-Methode Daten an das Remote Gerät senden oder Daten vom Remote Gerät mit der Receive-Methode empfangen.After you call Connect you can send data to the remote device with the Send method, or receive data from the remote device with the Receive method.

Wenn Sie ein verbindungsloses Protokoll (z. b. UDP) verwenden, müssen Sie Connect vor dem Senden und empfangen von Daten nicht aufzurufen.If you are using a connectionless protocol such as UDP, you do not have to call Connect before sending and receiving data. Sie können SendTo und ReceiveFrom verwenden, um synchron mit einem Remote Host zu kommunizieren.You can use SendTo and ReceiveFrom to synchronously communicate with a remote host. Wenn Sie Connect, werden alle Datagramme verworfen, die von einer anderen Adresse als der angegebenen Standardadresse eintreffen.If you do call Connect any datagrams that arrive from an address other than the specified default will be discarded. Wenn Sie den Standard-Remote Host auf eine Broadcast Adresse festlegen möchten, müssen Sie zuerst die SetSocketOption-Methode und die Socketoption auf SocketOptionName.Broadcastfestlegen, oder Connect löst eine SocketExceptionaus.If you want to set your default remote host to a broadcast address, you must first call the SetSocketOption method and set the socket option to SocketOptionName.Broadcast, or Connect will throw a SocketException. Wenn Sie erhalten eine SocketException, verwenden die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode zu erhalten.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. Nachdem Sie diesen Code abgerufen haben, finden Sie in der API-Fehlercode Dokumentation der Windows Sockets, Version 2 , eine ausführliche Beschreibung des Fehlers.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Connect Methode wird blockiert, es sei denn, Sie legen die Blocking-Eigenschaft vor dem Aufrufen von Connectexplizit auf false fest.Connect method will block, unless you specifically set the Blocking property to false prior to calling Connect. Wenn Sie ein Verbindungs orientiertes Protokoll wie TCP verwenden und die Blockierung deaktivieren, wird Connect eine SocketException auslösen, da es Zeit benötigt, um die Verbindung herzustellen.If you are using a connection-oriented protocol like TCP and you do disable blocking, Connect will throw a SocketException because it needs time to make the connection. Verbindungslose Protokolle lösen keine Ausnahme aus, da Sie einfach einen Standard-Remote Host einrichten.Connectionless protocols will not throw an exception because they simply establish a default remote host. Sie können SocketException.ErrorCode verwenden, um den spezifischen Fehlercode abzurufen.You can use SocketException.ErrorCode to obtain the specific error code. Nachdem Sie diesen Code abgerufen haben, finden Sie in der API-Fehlercode Dokumentation der Windows Sockets, Version 2 , eine ausführliche Beschreibung des Fehlers.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error. Wenn der Fehler "WSAEWOULDBLOCK" zurückgegeben wurde, wurde die Remote Host Verbindung von einem Verbindungs orientierten Socketinitiiert, aber noch nicht erfolgreich abgeschlossen.If the error returned WSAEWOULDBLOCK, the remote host connection has been initiated by a connection-oriented Socket, but has not yet completed successfully. Verwenden Sie die Poll-Methode, um zu bestimmen, wann die Socket die Verbindung hergestellt hat.Use the Poll method to determine when the Socket is finished connecting.

Hinweis

Wenn Sie ein Verbindungs orientiertes Protokoll verwenden und Bind vor dem Aufrufen von Connectnicht aufgerufen haben, weist der zugrunde liegende Dienstanbieter die Adresse und die Portnummer des lokalen Netzwerks zu.If you are using a connection-oriented protocol and did not call Bind before calling Connect, the underlying service provider will assign the local network address and port number. Wenn Sie ein verbindungsloses Protokoll verwenden, weist der Dienstanbieter erst dann eine lokale Netzwerkadresse und eine Portnummer zu, wenn Sie einen Sende-oder Empfangsvorgang ausführen.If you are using a connectionless protocol, the service provider will not assign a local network address and port number until you complete a send or receive operation. Wenn Sie den Standard-Remote Host ändern möchten, müssen Sie Connect erneut mit dem gewünschten Endpunkt abrufen.If you want to change the default remote host, call Connect again with the desired endpoint.

Hinweis

Wenn der Socket bereits getrennt wurde, können Sie diese Methode nicht verwenden, um die Verbindung wiederherzustellen.If the socket has been previously disconnected, then you cannot use this method to restore the connection. Verwenden Sie eine der asynchronen BeginConnect Methoden, um die Verbindung wiederherzustellen.Use one of the asynchronous BeginConnect methods to reconnect. Dies ist eine Einschränkung des zugrunde liegenden Anbieters.This is a limitation of the underlying provider.

Hinweis

Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren.This member outputs trace information when you enable network tracing in your application. Weitere Informationen finden Sie unter Netzwerk Ablauf Verfolgung in der .NET Framework.For more information, see Network Tracing in the .NET Framework.

Connect(EndPoint)

Stellt eine Verbindung mit einem Remotehost her.Establishes a connection to a remote 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)

Parameter

remoteEP
EndPoint

Ein EndPoint, der das Remotegerät darstellt.An EndPoint that represents the remote device.

Ausnahmen

remoteEP ist null.remoteEP is null.

Fehler beim Versuch, auf den Socket zuzugreifen.An error occurred when attempting to access the socket.

Der Socket wurde geschlossen.The Socket has been closed.

Ein höher in der Aufrufliste befindlicher Aufrufer verfügt nicht über die Berechtigung für den angeforderten Vorgang.A caller higher in the call stack does not have permission for the requested operation.

Der Socket wurde durch den Aufruf von Listen(Int32) in einem Wartezustand platziert.The Socket has been placed in a listening state by calling Listen(Int32).

Beispiele

Das folgende Codebeispiel stellt eine Verbindung mit einem Remote Endpunkt her und überprüft dann die Verbindung.The following code example connects to a remote endpoint and then verifies the connection.

client->Connect( anEndPoint );
if (  !client->Connected )
{
   Console::WriteLine( "Winsock error: {0}", Convert::ToString(
      System::Runtime::InteropServices::Marshal::GetLastWin32Error() ) );
}
   
// This is how you can determine whether a socket is still connected.
bool blockingState = client->Blocking;
try
{
   array<Byte>^tmp = gcnew array<Byte>(1);
   client->Blocking = false;
   client->Send( tmp, 0, static_cast<SocketFlags>(0) );
   Console::WriteLine( L"Connected!" );
}
catch ( SocketException^ e ) 
{
   // 10035 == WSAEWOULDBLOCK
   if ( e->NativeErrorCode.Equals( 10035 ) )
   {
      Console::WriteLine( "Connected from an exception!" );
   }
   else
   {
      Console::WriteLine( "Disconnected: {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.
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

Hinweise

Wenn Sie ein Verbindungs orientiertes Protokoll wie z. b. TCP verwenden, stellt die Connect-Methode synchron eine Netzwerkverbindung zwischen LocalEndPoint und dem angegebenen Remote Endpunkt her.If you are using a connection-oriented protocol such as TCP, the Connect method synchronously establishes a network connection between LocalEndPoint and the specified remote endpoint. Wenn Sie ein verbindungsloses Protokoll verwenden, stellt Connect einen Standard Remote Host her.If you are using a connectionless protocol, Connect establishes a default remote host. Nachdem Sie Connectaufgerufen haben, können Sie mit der Send-Methode Daten an das Remote Gerät senden oder Daten vom Remote Gerät mit der Receive-Methode empfangen.After you call Connect, you can send data to the remote device with the Send method, or receive data from the remote device with the Receive method.

Wenn Sie ein verbindungsloses Protokoll (z. b. UDP) verwenden, müssen Sie Connect vor dem Senden und empfangen von Daten nicht aufzurufen.If you are using a connectionless protocol such as UDP, you do not have to call Connect before sending and receiving data. Sie können SendTo und ReceiveFrom verwenden, um synchron mit einem Remote Host zu kommunizieren.You can use SendTo and ReceiveFrom to synchronously communicate with a remote host. Wenn Sie Connectaufzurufen, werden alle Datagramme verworfen, die von einer anderen Adresse als der angegebenen Standardadresse eintreffen.If you do call Connect, any datagrams that arrive from an address other than the specified default will be discarded. Wenn Sie den Standard-Remote Host auf eine Broadcast Adresse festlegen möchten, müssen Sie zuerst die SetSocketOption-Methode und die Socketoption auf SocketOptionName.Broadcastfestlegen, oder Connect löst eine SocketExceptionaus.If you want to set your default remote host to a broadcast address, you must first call the SetSocketOption method and set the socket option to SocketOptionName.Broadcast, or Connect will throw a SocketException. Wenn Sie erhalten eine SocketException, verwenden die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode zu erhalten.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. Nachdem Sie diesen Code abgerufen haben, finden Sie in der API-Fehlercode Dokumentation der Windows Sockets, Version 2 , eine ausführliche Beschreibung des Fehlers.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Die Connect-Methode wird blockiert, es sei denn, Sie legen die Blocking-Eigenschaft vor dem Aufrufen von Connectexplizit auf false fest.The Connect method will block, unless you specifically set the Blocking property to false prior to calling Connect. Wenn Sie ein Verbindungs orientiertes Protokoll wie TCP verwenden und die Blockierung deaktivieren, wird Connect eine SocketException auslösen, da es Zeit benötigt, um die Verbindung herzustellen.If you are using a connection-oriented protocol like TCP and you do disable blocking, Connect will throw a SocketException because it needs time to make the connection. Verbindungslose Protokolle lösen keine Ausnahme aus, da Sie einfach einen Standard-Remote Host einrichten.Connectionless protocols will not throw an exception because they simply establish a default remote host. Sie können SocketException.ErrorCode verwenden, um den spezifischen Fehlercode abzurufen.You can use SocketException.ErrorCode to obtain the specific error code. Nachdem Sie diesen Code abgerufen haben, finden Sie in der API-Fehlercode Dokumentation der Windows Sockets, Version 2 , eine ausführliche Beschreibung des Fehlers.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error. Wenn der Fehler "WSAEWOULDBLOCK" zurückgegeben wurde, wurde die Remote Host Verbindung von einem Verbindungs orientierten Socketinitiiert, aber noch nicht erfolgreich abgeschlossen.If the error returned WSAEWOULDBLOCK, the remote host connection has been initiated by a connection-oriented Socket, but has not yet completed successfully. Verwenden Sie die Poll-Methode, um zu bestimmen, wann die Socket die Verbindung hergestellt hat.Use the Poll method to determine when the Socket is finished connecting.

Hinweis

Wenn Sie ein Verbindungs orientiertes Protokoll verwenden und Bind vor dem Aufrufen von Connectnicht aufgerufen haben, weist der zugrunde liegende Dienstanbieter die Adresse und die Portnummer des lokalen Netzwerks zu.If you are using a connection-oriented protocol and did not call Bind before calling Connect, the underlying service provider will assign the local network address and port number. Wenn Sie ein verbindungsloses Protokoll verwenden, weist der Dienstanbieter erst dann eine lokale Netzwerkadresse und eine Portnummer zu, wenn Sie einen Sende-oder Empfangsvorgang ausführen.If you are using a connectionless protocol, the service provider will not assign a local network address and port number until you complete a send or receive operation. Wenn Sie den Standard-Remote Host ändern möchten, müssen Sie Connect erneut mit dem gewünschten Endpunkt abrufen.If you want to change the default remote host, call Connect again with the desired endpoint.

Hinweis

Wenn der Socket bereits getrennt wurde, können Sie diese Methode nicht verwenden, um die Verbindung wiederherzustellen.If the socket has been previously disconnected, then you cannot use this method to restore the connection. Verwenden Sie eine der asynchronen BeginConnect Methoden, um die Verbindung wiederherzustellen.Use one of the asynchronous BeginConnect methods to reconnect. Dies ist eine Einschränkung des zugrunde liegenden Anbieters.This is a limitation of the underlying provider.

Hinweis

Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren.This member outputs trace information when you enable network tracing in your application. Weitere Informationen finden Sie unter Netzwerk Ablauf Verfolgung in der .NET Framework.For more information, see Network Tracing in the .NET Framework.

Sicherheit

SocketPermission
zum Herstellen einer Verbindung mit dem Remote Host.for connecting to the remote host. Zugehörige Enumeration: ConnectAssociated enumeration: Connect

Siehe auch

Gilt für: