Socket.Connect Méthode

Définition

Établit une connexion à un hôte distant.Establishes a connection to a remote host.

Surcharges

Connect(String, Int32)

Établit une connexion à un hôte distant.Establishes a connection to a remote host. L’hôte est spécifié par un nom d’hôte et un numéro de port.The host is specified by a host name and a port number.

Connect(IPAddress[], Int32)

Établit une connexion à un hôte distant.Establishes a connection to a remote host. L’hôte est spécifié par un tableau d’adresses IP et un numéro de port.The host is specified by an array of IP addresses and a port number.

Connect(EndPoint)

Établit une connexion à un hôte distant.Establishes a connection to a remote host.

Connect(IPAddress, Int32)

Établit une connexion à un hôte distant.Establishes a connection to a remote host. L’hôte est spécifié par une adresse IP et un numéro de port.The host is specified by an IP address and a port number.

Connect(String, Int32)

Établit une connexion à un hôte distant.Establishes a connection to a remote host. L’hôte est spécifié par un nom d’hôte et un numéro de port.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)

Paramètres

host
String

Nom de l'hôte distant.The name of the remote host.

port
Int32

Numéro de port de l'hôte distant.The port number of the remote host.

Exceptions

host a la valeur null.host is null.

Le numéro de port n’est pas valide.The port number is not valid.

Une erreur s’est produite pendant la tentative d’accès au socket.An error occurred when attempting to access the socket.

Socket a été fermé.The Socket has been closed.

Cette méthode est valide pour les sockets appartenant aux familles InterNetwork ou InterNetworkV6.This method is valid for sockets in the InterNetwork or InterNetworkV6 families.

Socket a été mis dans un état d’écoute en appelant Listen(Int32).The Socket has been placed in a listening state by calling Listen(Int32).

Exemples

L’exemple de code suivant se connecte à un point de terminaison distant, puis vérifie la connexion.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");
}		

Remarques

Si vous utilisez un protocole orienté connexion, tel que TCP, la Connect méthode établit de manière synchrone une connexion réseau entre LocalEndPoint et l’hôte distant spécifié.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. Si vous utilisez un protocole sans connexion, Connect établit un hôte distant par défaut.If you are using a connectionless protocol, Connect establishes a default remote host. Une fois que vous avez appelé Connect , vous pouvez envoyer des données à l’appareil distant avec la Send méthode ou recevoir des données de l’appareil distant avec la Receive méthode.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.

Si vous utilisez un protocole sans connexion, tel que UDP, il n’est pas nécessaire d’appeler Connect avant d’envoyer et de recevoir des données.If you are using a connectionless protocol such as UDP, you do not have to call Connect before sending and receiving data. Vous pouvez utiliser SendTo et ReceiveFrom pour communiquer de façon synchrone avec un hôte distant.You can use SendTo and ReceiveFrom to synchronously communicate with a remote host. Si vous appelez Connect des datagrammes qui arrivent à partir d’une adresse autre que celle spécifiée par défaut, est ignorée.If you do call Connect any datagrams that arrive from an address other than the specified default will be discarded. Si vous souhaitez définir votre hôte distant par défaut sur une adresse de diffusion, vous devez d’abord appeler la SetSocketOption méthode et affecter à l’option de socket la valeur SocketOptionName.Broadcast , ou Connect lever une exception SocketException .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. Si vous recevez un SocketException , utilisez la SocketException.ErrorCode propriété pour obtenir le code d’erreur spécifique.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. Une fois que vous avez obtenu ce code, reportez-vous à la documentation sur les codes d’erreur de l' API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.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 la méthode est bloquée, sauf si vous affectez spécifiquement à la propriété la valeur Blocking false avant d’appeler Connect .Connect method will block, unless you specifically set the Blocking property to false prior to calling Connect. Si vous utilisez un protocole orienté connexion tel que TCP et que vous désactivez le blocage, Connect lève une, SocketException car il a besoin de temps pour établir la connexion.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. Les protocoles sans connexion ne lèvent pas d’exception, car ils établissent simplement un hôte distant par défaut.Connectionless protocols will not throw an exception because they simply establish a default remote host. Vous pouvez utiliser SocketException.ErrorCode pour obtenir le code d’erreur spécifique.You can use SocketException.ErrorCode to obtain the specific error code. Une fois que vous avez obtenu ce code, reportez-vous à la documentation sur les codes d’erreur de l' API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error. Si l’erreur a renvoyé WSAEWOULDBLOCK, la connexion de l’hôte distant a été initiée par un orienté connexion Socket , mais n’a pas encore été effectuée correctement.If the error returned WSAEWOULDBLOCK, the remote host connection has been initiated by a connection-oriented Socket, but has not yet completed successfully. Utilisez la Poll méthode pour déterminer à quel moment la Socket connexion est terminée.Use the Poll method to determine when the Socket is finished connecting.

Si IPv6 est activé et Connect(String, Int32) que la méthode est appelée pour se connecter à un hôte qui correspond à la fois à des adresses IPv6 et IPv4, la connexion à l’adresse IPv6 est tentée en premier avant l’adresse IPv4.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. Cela peut avoir pour effet de retarder le temps nécessaire à l’établissement de la connexion si l’hôte n’écoute pas sur l’adresse IPv6.This may have the effect of delaying the time to establish the connection if the host is not listening on the IPv6 address.

Notes

Si vous utilisez un protocole orienté connexion et que vous n’avez pas appelé avant d’appeler Bind Connect , le fournisseur de services sous-jacent assignera l’adresse réseau locale et le numéro de port.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. Si vous utilisez un protocole sans connexion, le fournisseur de services n’affectera pas d’adresse réseau locale et de numéro de port tant que vous n’aurez pas terminé une opération d’envoi ou de réception.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. Si vous souhaitez modifier l’hôte distant par défaut, appelez Connect à nouveau avec le point de terminaison souhaité.If you want to change the default remote host, call Connect again with the desired endpoint.

Notes

Si le socket a été déconnecté précédemment, vous ne pouvez pas utiliser cette méthode pour restaurer la connexion.If the socket has been previously disconnected, then you cannot use this method to restore the connection. Utilisez l’une des méthodes asynchrones BeginConnect pour vous reconnecter.Use one of the asynchronous BeginConnect methods to reconnect. Il s’agit d’une limitation du fournisseur sous-jacent.This is a limitation of the underlying provider.

Notes

Ce membre génère des informations de traçage lorsque vous activez le traçage réseau dans votre application.This member outputs trace information when you enable network tracing in your application. Pour plus d’informations, consultez la page traçage réseau dans le .NET Framework.For more information, see Network Tracing in the .NET Framework.

S’applique à

Connect(IPAddress[], Int32)

Établit une connexion à un hôte distant.Establishes a connection to a remote host. L’hôte est spécifié par un tableau d’adresses IP et un numéro de port.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)

Paramètres

addresses
IPAddress[]

Adresses IP de l’hôte distant.The IP addresses of the remote host.

port
Int32

Numéro de port de l'hôte distant.The port number of the remote host.

Exceptions

addresses a la valeur null.addresses is null.

Le numéro de port n’est pas valide.The port number is not valid.

Une erreur s’est produite pendant la tentative d’accès au socket.An error occurred when attempting to access the socket.

Socket a été fermé.The Socket has been closed.

Cette méthode est valide pour les sockets appartenant aux familles InterNetwork ou InterNetworkV6.This method is valid for sockets in the InterNetwork or InterNetworkV6 families.

La longueur de address est égale à zéro.The length of address is zero.

Socket a été mis dans un état d’écoute en appelant Listen(Int32).The Socket has been placed in a listening state by calling Listen(Int32).

Exemples

L’exemple de code suivant se connecte à un point de terminaison distant, puis vérifie la connexion.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");
}		

Remarques

Cette méthode est généralement utilisée immédiatement après un appel à GetHostAddresses , qui peut retourner plusieurs adresses IP pour un seul hôte.This method is typically used immediately after a call to GetHostAddresses, which can return multiple IP addresses for a single host. Si vous utilisez un protocole orienté connexion, tel que TCP, la Connect méthode établit de manière synchrone une connexion réseau entre LocalEndPoint et le point de terminaison distant spécifié.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. Si vous utilisez un protocole sans connexion, Connect établit un hôte distant par défaut.If you are using a connectionless protocol, Connect establishes a default remote host. Une fois que vous avez appelé Connect , vous pouvez envoyer des données à l’appareil distant avec la Send méthode ou recevoir des données de l’appareil distant avec la Receive méthode.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.

Si vous utilisez un protocole sans connexion, tel que UDP, il n’est pas nécessaire d’appeler Connect avant d’envoyer et de recevoir des données.If you are using a connectionless protocol such as UDP, you do not have to call Connect before sending and receiving data. Vous pouvez utiliser SendTo et ReceiveFrom pour communiquer de façon synchrone avec un hôte distant.You can use SendTo and ReceiveFrom to synchronously communicate with a remote host. Si vous appelez Connect des datagrammes qui arrivent à partir d’une adresse autre que celle spécifiée par défaut, est ignorée.If you do call Connect any datagrams that arrive from an address other than the specified default will be discarded. Si vous souhaitez définir votre hôte distant par défaut sur une adresse de diffusion, vous devez d’abord appeler la SetSocketOption méthode et affecter à l’option de socket la valeur SocketOptionName.Broadcast , ou Connect lever une exception SocketException .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. Si vous recevez un SocketException , utilisez la SocketException.ErrorCode propriété pour obtenir le code d’erreur spécifique.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. Une fois que vous avez obtenu ce code, reportez-vous à la documentation sur les codes d’erreur de l' API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.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 la méthode est bloquée, sauf si vous affectez spécifiquement à la propriété la valeur Blocking false avant d’appeler Connect .Connect method will block, unless you specifically set the Blocking property to false prior to calling Connect. Si vous utilisez un protocole orienté connexion tel que TCP et que vous désactivez le blocage, Connect lève une, SocketException car il a besoin de temps pour établir la connexion.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. Les protocoles sans connexion ne lèvent pas d’exception, car ils établissent simplement un hôte distant par défaut.Connectionless protocols will not throw an exception because they simply establish a default remote host. Vous pouvez utiliser SocketException.ErrorCode pour obtenir le code d’erreur spécifique.You can use SocketException.ErrorCode to obtain the specific error code. Une fois que vous avez obtenu ce code, reportez-vous à la documentation sur les codes d’erreur de l' API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error. Si l’erreur a renvoyé WSAEWOULDBLOCK, la connexion de l’hôte distant a été initiée par un orienté connexion Socket , mais n’a pas encore été effectuée correctement.If the error returned WSAEWOULDBLOCK, the remote host connection has been initiated by a connection-oriented Socket, but has not yet completed successfully. Utilisez la Poll méthode pour déterminer à quel moment la Socket connexion est terminée.Use the Poll method to determine when the Socket is finished connecting.

Notes

Si vous utilisez un protocole orienté connexion et que vous n’avez pas appelé avant d’appeler Bind Connect , le fournisseur de services sous-jacent assignera l’adresse réseau locale et le numéro de port.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. Si vous utilisez un protocole sans connexion, le fournisseur de services n’affectera pas d’adresse réseau locale et de numéro de port tant que vous n’aurez pas terminé une opération d’envoi ou de réception.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. Si vous souhaitez modifier l’hôte distant par défaut, appelez Connect à nouveau avec le point de terminaison souhaité.If you want to change the default remote host, call Connect again with the desired endpoint.

Notes

Si le socket a été déconnecté précédemment, vous ne pouvez pas utiliser cette méthode pour restaurer la connexion.If the socket has been previously disconnected, then you cannot use this method to restore the connection. Utilisez l’une des méthodes asynchrones BeginConnect pour vous reconnecter.Use one of the asynchronous BeginConnect methods to reconnect. Il s’agit d’une limitation du fournisseur sous-jacent.This is a limitation of the underlying provider.

Notes

Ce membre génère des informations de traçage lorsque vous activez le traçage réseau dans votre application.This member outputs trace information when you enable network tracing in your application. Pour plus d’informations, consultez la page traçage réseau dans le .NET Framework.For more information, see Network Tracing in the .NET Framework.

S’applique à

Connect(EndPoint)

Établit une connexion à un hôte distant.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)

Paramètres

remoteEP
EndPoint

EndPoint qui représente l’appareil distant.An EndPoint that represents the remote device.

Exceptions

remoteEP a la valeur null.remoteEP is null.

Une erreur s’est produite pendant la tentative d’accès au socket.An error occurred when attempting to access the socket.

Socket a été fermé.The Socket has been closed.

Un appelant situé plus haut dans la pile des appels n’a pas l’autorisation pour l’opération demandée.A caller higher in the call stack does not have permission for the requested operation.

Socket a été mis dans un état d’écoute en appelant Listen(Int32).The Socket has been placed in a listening state by calling Listen(Int32).

Exemples

L’exemple de code suivant se connecte à un point de terminaison distant, puis vérifie la connexion.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

Remarques

Si vous utilisez un protocole orienté connexion, tel que TCP, la Connect méthode établit de manière synchrone une connexion réseau entre LocalEndPoint et le point de terminaison distant spécifié.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. Si vous utilisez un protocole sans connexion, Connect établit un hôte distant par défaut.If you are using a connectionless protocol, Connect establishes a default remote host. Une fois que vous avez appelé Connect , vous pouvez envoyer des données à l’appareil distant avec la Send méthode ou recevoir des données de l’appareil distant avec la Receive méthode.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.

Si vous utilisez un protocole sans connexion, tel que UDP, il n’est pas nécessaire d’appeler Connect avant d’envoyer et de recevoir des données.If you are using a connectionless protocol such as UDP, you do not have to call Connect before sending and receiving data. Vous pouvez utiliser SendTo et ReceiveFrom pour communiquer de façon synchrone avec un hôte distant.You can use SendTo and ReceiveFrom to synchronously communicate with a remote host. Si vous appelez Connect , tous les datagrammes provenant d’une adresse autre que la valeur par défaut spécifiée seront ignorés.If you do call Connect, any datagrams that arrive from an address other than the specified default will be discarded. Si vous souhaitez définir votre hôte distant par défaut sur une adresse de diffusion, vous devez d’abord appeler la SetSocketOption méthode et affecter à l’option de socket la valeur SocketOptionName.Broadcast , ou Connect lever une exception SocketException .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. Si vous recevez un SocketException , utilisez la SocketException.ErrorCode propriété pour obtenir le code d’erreur spécifique.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. Une fois que vous avez obtenu ce code, reportez-vous à la documentation sur les codes d’erreur de l' API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

La Connect méthode est bloquée, sauf si vous affectez spécifiquement à la propriété la valeur Blocking false avant d’appeler Connect .The Connect method will block, unless you specifically set the Blocking property to false prior to calling Connect. Si vous utilisez un protocole orienté connexion tel que TCP et que vous désactivez le blocage, Connect lève une, SocketException car il a besoin de temps pour établir la connexion.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. Les protocoles sans connexion ne lèvent pas d’exception, car ils établissent simplement un hôte distant par défaut.Connectionless protocols will not throw an exception because they simply establish a default remote host. Vous pouvez utiliser SocketException.ErrorCode pour obtenir le code d’erreur spécifique.You can use SocketException.ErrorCode to obtain the specific error code. Une fois que vous avez obtenu ce code, reportez-vous à la documentation sur les codes d’erreur de l' API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error. Si l’erreur a renvoyé WSAEWOULDBLOCK, la connexion de l’hôte distant a été initiée par un orienté connexion Socket , mais n’a pas encore été effectuée correctement.If the error returned WSAEWOULDBLOCK, the remote host connection has been initiated by a connection-oriented Socket, but has not yet completed successfully. Utilisez la Poll méthode pour déterminer à quel moment la Socket connexion est terminée.Use the Poll method to determine when the Socket is finished connecting.

Notes

Si vous utilisez un protocole orienté connexion et que vous n’avez pas appelé avant d’appeler Bind Connect , le fournisseur de services sous-jacent assignera l’adresse réseau locale et le numéro de port.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. Si vous utilisez un protocole sans connexion, le fournisseur de services n’affectera pas d’adresse réseau locale et de numéro de port tant que vous n’aurez pas terminé une opération d’envoi ou de réception.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. Si vous souhaitez modifier l’hôte distant par défaut, appelez Connect à nouveau avec le point de terminaison souhaité.If you want to change the default remote host, call Connect again with the desired endpoint.

Notes

Si le socket a été déconnecté précédemment, vous ne pouvez pas utiliser cette méthode pour restaurer la connexion.If the socket has been previously disconnected, then you cannot use this method to restore the connection. Utilisez l’une des méthodes asynchrones BeginConnect pour vous reconnecter.Use one of the asynchronous BeginConnect methods to reconnect. Il s’agit d’une limitation du fournisseur sous-jacent.This is a limitation of the underlying provider.

Notes

Ce membre génère des informations de traçage lorsque vous activez le traçage réseau dans votre application.This member outputs trace information when you enable network tracing in your application. Pour plus d’informations, consultez la page traçage réseau dans le .NET Framework.For more information, see Network Tracing in the .NET Framework.

Voir aussi

S’applique à

Connect(IPAddress, Int32)

Établit une connexion à un hôte distant.Establishes a connection to a remote host. L’hôte est spécifié par une adresse IP et un numéro de port.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)

Paramètres

address
IPAddress

Adresse IP de l’hôte distant.The IP address of the remote host.

port
Int32

Numéro de port de l'hôte distant.The port number of the remote host.

Exceptions

address a la valeur null.address is null.

Le numéro de port n’est pas valide.The port number is not valid.

Une erreur s’est produite pendant la tentative d’accès au socket.An error occurred when attempting to access the socket.

Socket a été fermé.The Socket has been closed.

Cette méthode est valide pour les sockets appartenant aux familles InterNetwork ou InterNetworkV6.This method is valid for sockets in the InterNetwork or InterNetworkV6 families.

La longueur de address est égale à zéro.The length of address is zero.

Socket a été mis dans un état d’écoute en appelant Listen(Int32).The Socket has been placed in a listening state by calling Listen(Int32).

Exemples

L’exemple de code suivant se connecte à un point de terminaison distant, puis vérifie la connexion.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");
}		

Remarques

Si vous utilisez un protocole orienté connexion, tel que TCP, la Connect méthode établit de manière synchrone une connexion réseau entre LocalEndPoint et le point de terminaison distant spécifié.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. Si vous utilisez un protocole sans connexion, Connect établit un hôte distant par défaut.If you are using a connectionless protocol, Connect establishes a default remote host. Une fois que vous avez appelé Connect , vous pouvez envoyer des données à l’appareil distant avec la Send méthode ou recevoir des données de l’appareil distant avec la Receive méthode.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.

Si vous utilisez un protocole sans connexion, tel que UDP, il n’est pas nécessaire d’appeler Connect avant d’envoyer et de recevoir des données.If you are using a connectionless protocol such as UDP, you do not have to call Connect before sending and receiving data. Vous pouvez utiliser SendTo et ReceiveFrom pour communiquer de façon synchrone avec un hôte distant.You can use SendTo and ReceiveFrom to synchronously communicate with a remote host. Si vous appelez Connect des datagrammes qui arrivent à partir d’une adresse autre que celle spécifiée par défaut, est ignorée.If you do call Connect any datagrams that arrive from an address other than the specified default will be discarded. Si vous souhaitez définir votre hôte distant par défaut sur une adresse de diffusion, vous devez d’abord appeler la SetSocketOption méthode et affecter à l’option de socket la valeur SocketOptionName.Broadcast , ou Connect lever une exception SocketException .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. Si vous recevez un SocketException , utilisez la SocketException.ErrorCode propriété pour obtenir le code d’erreur spécifique.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. Une fois que vous avez obtenu ce code, reportez-vous à la documentation sur les codes d’erreur de l' API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.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 la méthode est bloquée, sauf si vous affectez spécifiquement à la propriété la valeur Blocking false avant d’appeler Connect .Connect method will block, unless you specifically set the Blocking property to false prior to calling Connect. Si vous utilisez un protocole orienté connexion tel que TCP et que vous désactivez le blocage, Connect lève une, SocketException car il a besoin de temps pour établir la connexion.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. Les protocoles sans connexion ne lèvent pas d’exception, car ils établissent simplement un hôte distant par défaut.Connectionless protocols will not throw an exception because they simply establish a default remote host. Vous pouvez utiliser SocketException.ErrorCode pour obtenir le code d’erreur spécifique.You can use SocketException.ErrorCode to obtain the specific error code. Une fois que vous avez obtenu ce code, reportez-vous à la documentation sur les codes d’erreur de l' API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error. Si l’erreur a renvoyé WSAEWOULDBLOCK, la connexion de l’hôte distant a été initiée par un orienté connexion Socket , mais n’a pas encore été effectuée correctement.If the error returned WSAEWOULDBLOCK, the remote host connection has been initiated by a connection-oriented Socket, but has not yet completed successfully. Utilisez la Poll méthode pour déterminer à quel moment la Socket connexion est terminée.Use the Poll method to determine when the Socket is finished connecting.

Notes

Si vous utilisez un protocole orienté connexion et que vous n’avez pas appelé avant d’appeler Bind Connect , le fournisseur de services sous-jacent assignera l’adresse réseau locale et le numéro de port.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. Si vous utilisez un protocole sans connexion, le fournisseur de services n’affectera pas d’adresse réseau locale et de numéro de port tant que vous n’aurez pas terminé une opération d’envoi ou de réception.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. Si vous souhaitez modifier l’hôte distant par défaut, appelez Connect à nouveau avec le point de terminaison souhaité.If you want to change the default remote host, call Connect again with the desired endpoint.

Notes

Si le socket a été déconnecté précédemment, vous ne pouvez pas utiliser cette méthode pour restaurer la connexion.If the socket has been previously disconnected, then you cannot use this method to restore the connection. Utilisez l’une des méthodes asynchrones BeginConnect pour vous reconnecter.Use one of the asynchronous BeginConnect methods to reconnect. Il s’agit d’une limitation du fournisseur sous-jacent.This is a limitation of the underlying provider.

Notes

Ce membre génère des informations de traçage lorsque vous activez le traçage réseau dans votre application.This member outputs trace information when you enable network tracing in your application. Pour plus d’informations, consultez la page traçage réseau dans le .NET Framework.For more information, see Network Tracing in the .NET Framework.

S’applique à