Socket.Connect Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Établit une connexion à un hôte distant.
Surcharges
Connect(EndPoint) |
Établit une connexion à un hôte distant. |
Connect(IPAddress, Int32) |
Établit une connexion à un hôte distant. L’hôte est spécifié par une adresse IP et un numéro de port. |
Connect(IPAddress[], Int32) |
Établit une connexion à un hôte distant. L’hôte est spécifié par un tableau d’adresses IP et un numéro de port. |
Connect(String, Int32) |
Établit une connexion à un hôte distant. L’hôte est spécifié par un nom d’hôte et un numéro de port. |
Connect(EndPoint)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Établit une connexion à un hôte distant.
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
Exceptions
remoteEP
a la valeur null
.
Une erreur s’est produite pendant la tentative d’accès au socket.
Socket a été fermé.
Un appelant situé plus haut dans la pile des appels n’a pas l’autorisation pour l’opération demandée.
Socket a été mis dans un état d’écoute en appelant Listen(Int32).
Exemples
L’exemple de code suivant se connecte à un point de terminaison distant, puis vérifie la connexion.
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é. Si vous utilisez un protocole sans connexion, Connect établit un hôte distant par défaut. Après avoir 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 .
Si vous utilisez un protocole sans connexion tel qu’UDP, vous n’avez pas besoin d’appeler Connect avant d’envoyer et de recevoir des données. Vous pouvez utiliser SendTo et ReceiveFrom pour communiquer de manière synchrone avec un hôte distant. Si vous appelez Connect, tous les datagrammes qui arrivent d’une adresse autre que la valeur par défaut spécifiée seront ignorés. 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 définir l’option de socket sur SocketOptionName.Broadcast, ou Connect lèvera un SocketException. Si vous recevez un SocketException, utilisez la SocketException.ErrorCode propriété pour obtenir le code d’erreur spécifique. Une fois ce code obtenu, reportez-vous à la documentation du code d’erreur de l’API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.
La Connect méthode sera bloquée, sauf si vous définissez spécifiquement la Blocking propriété sur false
avant d’appeler Connect. Si vous utilisez un protocole orienté connexion comme TCP et que vous désactivez le blocage, Connect lève un SocketException car il a besoin de temps pour créer la connexion. Les protocoles sans connexion ne lèvent pas d’exception, car ils établissent simplement un hôte distant par défaut. Vous pouvez utiliser SocketException.ErrorCode pour obtenir le code d’erreur spécifique. Une fois ce code obtenu, reportez-vous à la documentation du code d’erreur de l’API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur. Si l’erreur a retourné WSAEWOULDBLOCK, la connexion de l’hôte distant a été lancée par un élément orienté Socketconnexion, mais elle ne s’est pas encore terminée correctement. Utilisez la Poll méthode pour déterminer quand la Socket connexion est terminée.
Notes
Si vous utilisez un protocole orienté connexion et que vous n’avez pas appelé Bind avant d’appeler Connect, le fournisseur de services sous-jacent affectera l’adresse de réseau local et le numéro de port. Si vous utilisez un protocole sans connexion, le fournisseur de services n’affectera pas d’adresse de réseau local et de numéro de port tant que vous n’aurez pas terminé une opération d’envoi ou de réception. Si vous souhaitez modifier l’hôte distant par défaut, appelez Connect à nouveau avec le point de terminaison souhaité.
Notes
Si le socket a été précédemment déconnecté, vous ne pouvez pas utiliser cette méthode pour restaurer la connexion. Utilisez l’une des méthodes asynchrones BeginConnect pour vous reconnecter. Il s’agit d’une limitation du fournisseur sous-jacent.
Notes
Ce membre génère des informations de traçage lorsque vous activez le traçage réseau dans votre application. Pour plus d’informations, consultez Suivi réseau dans .NET Framework.
Voir aussi
- 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)
S’applique à
Connect(IPAddress, Int32)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Établit une connexion à un hôte distant. L’hôte est spécifié par une adresse IP et un numéro de port.
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.
- port
- Int32
Numéro de port de l'hôte distant.
Exceptions
address
a la valeur null
.
Le numéro de port n’est pas valide.
Une erreur s’est produite pendant la tentative d’accès au socket.
Socket a été fermé.
Cette méthode est valide pour les sockets appartenant aux familles InterNetwork ou InterNetworkV6.
La longueur de address
est égale à zéro.
Socket a été mis dans un état d’écoute en appelant Listen(Int32).
Exemples
L’exemple de code suivant se connecte à un point de terminaison distant, puis vérifie la connexion.
// 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é. Si vous utilisez un protocole sans connexion, Connect établit un hôte distant par défaut. Après avoir 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 .
Si vous utilisez un protocole sans connexion tel qu’UDP, vous n’avez pas besoin d’appeler Connect avant d’envoyer et de recevoir des données. Vous pouvez utiliser SendTo et ReceiveFrom pour communiquer de manière synchrone avec un hôte distant. Si vous appelez Connect des datagrammes qui arrivent d’une adresse autre que la valeur par défaut spécifiée, seront ignorés. 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 définir l’option de socket sur SocketOptionName.Broadcast, ou Connect lèvera un SocketException. Si vous recevez un SocketException, utilisez la SocketException.ErrorCode propriété pour obtenir le code d’erreur spécifique. Une fois ce code obtenu, reportez-vous à la documentation du code d’erreur de l’API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.
Connect la méthode bloquera, sauf si vous définissez spécifiquement la Blocking propriété sur false
avant d’appeler Connect. Si vous utilisez un protocole orienté connexion comme TCP et que vous désactivez le blocage, Connect lève un SocketException car il a besoin de temps pour créer la connexion. Les protocoles sans connexion ne lèvent pas d’exception, car ils établissent simplement un hôte distant par défaut. Vous pouvez utiliser SocketException.ErrorCode pour obtenir le code d’erreur spécifique. Une fois ce code obtenu, reportez-vous à la documentation du code d’erreur de l’API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur. Si l’erreur a retourné WSAEWOULDBLOCK, la connexion de l’hôte distant a été lancée par un élément orienté Socketconnexion, mais elle ne s’est pas encore terminée correctement. Utilisez la Poll méthode pour déterminer quand la Socket connexion est terminée.
Notes
Si vous utilisez un protocole orienté connexion et que vous n’avez pas appelé Bind avant d’appeler Connect, le fournisseur de services sous-jacent affectera l’adresse de réseau local et le numéro de port. Si vous utilisez un protocole sans connexion, le fournisseur de services n’affectera pas d’adresse de réseau local et de numéro de port tant que vous n’aurez pas terminé une opération d’envoi ou de réception. Si vous souhaitez modifier l’hôte distant par défaut, appelez Connect à nouveau avec le point de terminaison souhaité.
Notes
Si le socket a été précédemment déconnecté, vous ne pouvez pas utiliser cette méthode pour restaurer la connexion. Utilisez l’une des méthodes asynchrones BeginConnect pour vous reconnecter. Il s’agit d’une limitation du fournisseur sous-jacent.
Notes
Ce membre génère des informations de traçage lorsque vous activez le traçage réseau dans votre application. Pour plus d’informations, consultez Suivi réseau dans .NET Framework.
S’applique à
Connect(IPAddress[], Int32)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Établit une connexion à un hôte distant. L’hôte est spécifié par un tableau d’adresses IP et un numéro de port.
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.
- port
- Int32
Numéro de port de l'hôte distant.
Exceptions
addresses
a la valeur null
.
Le numéro de port n’est pas valide.
Une erreur s’est produite pendant la tentative d’accès au socket.
Socket a été fermé.
Le socket n’est pas dans les InterNetwork familles ou InterNetworkV6 .
La longueur de address
est égale à zéro.
Socket a été mis dans un état d’écoute en appelant Listen(Int32).
Exemples
L’exemple de code suivant se connecte à un point de terminaison distant, puis vérifie la connexion.
// 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, ce qui peut retourner plusieurs adresses IP pour un hôte unique. 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é. Si vous utilisez un protocole sans connexion, Connect établit un hôte distant par défaut. Après avoir 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 .
Si vous utilisez un protocole sans connexion tel qu’UDP, vous n’avez pas besoin d’appeler Connect avant d’envoyer et de recevoir des données. Vous pouvez utiliser SendTo et ReceiveFrom pour communiquer de manière synchrone avec un hôte distant. Si vous appelez Connect des datagrammes qui arrivent d’une adresse autre que la valeur par défaut spécifiée, seront ignorés. 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 définir l’option de socket sur SocketOptionName.Broadcast, ou Connect lèvera un SocketException. Si vous recevez un SocketException, utilisez la SocketException.ErrorCode propriété pour obtenir le code d’erreur spécifique. Une fois ce code obtenu, reportez-vous à la documentation du code d’erreur de l’API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.
Connect la méthode bloquera, sauf si vous définissez spécifiquement la Blocking propriété sur false
avant d’appeler Connect. Si vous utilisez un protocole orienté connexion comme TCP et que vous désactivez le blocage, Connect lève un SocketException car il a besoin de temps pour créer la connexion. Les protocoles sans connexion ne lèvent pas d’exception, car ils établissent simplement un hôte distant par défaut. Vous pouvez utiliser SocketException.ErrorCode pour obtenir le code d’erreur spécifique. Une fois ce code obtenu, reportez-vous à la documentation du code d’erreur de l’API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur. Si l’erreur a retourné WSAEWOULDBLOCK, la connexion de l’hôte distant a été lancée par un élément orienté Socketconnexion, mais elle ne s’est pas encore terminée correctement. Utilisez la Poll méthode pour déterminer quand la Socket connexion est terminée.
Notes
Si vous utilisez un protocole orienté connexion et que vous n’avez pas appelé Bind avant d’appeler Connect, le fournisseur de services sous-jacent affectera l’adresse de réseau local et le numéro de port. Si vous utilisez un protocole sans connexion, le fournisseur de services n’affectera pas d’adresse de réseau local et de numéro de port tant que vous n’aurez pas terminé une opération d’envoi ou de réception. Si vous souhaitez modifier l’hôte distant par défaut, appelez Connect à nouveau avec le point de terminaison souhaité.
Notes
Si le socket a été précédemment déconnecté, vous ne pouvez pas utiliser cette méthode pour restaurer la connexion. Utilisez l’une des méthodes asynchrones BeginConnect pour vous reconnecter. Il s’agit d’une limitation du fournisseur sous-jacent.
Notes
Ce membre génère des informations de traçage lorsque vous activez le traçage réseau dans votre application. Pour plus d’informations, consultez Suivi réseau dans .NET Framework.
S’applique à
Connect(String, Int32)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Établit une connexion à un hôte distant. L’hôte est spécifié par un nom d’hôte et un numéro de port.
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.
- port
- Int32
Numéro de port de l'hôte distant.
Exceptions
host
a la valeur null
.
Le numéro de port n’est pas valide.
Une erreur s’est produite pendant la tentative d’accès au socket.
Socket a été fermé.
Le socket n’est pas dans les InterNetwork familles ou InterNetworkV6 .
Socket a été mis dans un état d’écoute en appelant Listen(Int32).
Exemples
L’exemple de code suivant se connecte à un point de terminaison distant, puis vérifie la connexion.
// 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é. Si vous utilisez un protocole sans connexion, Connect établit un hôte distant par défaut. Après avoir 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 .
Si vous utilisez un protocole sans connexion tel qu’UDP, vous n’avez pas besoin d’appeler Connect avant d’envoyer et de recevoir des données. Vous pouvez utiliser SendTo et ReceiveFrom pour communiquer de manière synchrone avec un hôte distant. Si vous appelez Connect des datagrammes qui arrivent d’une adresse autre que la valeur par défaut spécifiée, seront ignorés. 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 définir l’option de socket sur SocketOptionName.Broadcast, ou Connect lèvera un SocketException. Si vous recevez un SocketException, utilisez la SocketException.ErrorCode propriété pour obtenir le code d’erreur spécifique. Une fois ce code obtenu, reportez-vous à la documentation du code d’erreur de l’API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.
La Connect méthode sera bloquée, sauf si vous définissez spécifiquement la Blocking propriété sur false
avant d’appeler Connect. Si vous utilisez un protocole orienté connexion comme TCP et que vous désactivez le blocage, Connect lève un SocketException car il a besoin de temps pour créer la connexion. Les protocoles sans connexion ne lèvent pas d’exception, car ils établissent simplement un hôte distant par défaut. Vous pouvez utiliser SocketException.ErrorCode pour obtenir le code d’erreur spécifique. Une fois ce code obtenu, reportez-vous à la documentation du code d’erreur de l’API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur. Si l’erreur a retourné WSAEWOULDBLOCK, la connexion de l’hôte distant a été lancée par un élément orienté Socketconnexion, mais elle ne s’est pas encore terminée correctement. Utilisez la Poll méthode pour déterminer quand la Socket connexion est terminée.
Si IPv6 est activé et que la Connect(String, Int32) méthode est appelée pour se connecter à un hôte qui se résout en adresses IPv6 et IPv4, la connexion à l’adresse IPv6 est tentée avant l’adresse IPv4. Cela peut avoir pour effet de retarder le délai d’établissement de la connexion si l’hôte n’écoute pas l’adresse IPv6.
Notes
Si vous utilisez un protocole orienté connexion et que vous n’avez pas appelé Bind avant d’appeler Connect, le fournisseur de services sous-jacent affectera l’adresse du réseau local et le numéro de port. Si vous utilisez un protocole sans connexion, le fournisseur de services n’affectera pas d’adresse de réseau local et de numéro de port tant que vous n’aurez pas terminé une opération d’envoi ou de réception. Si vous souhaitez modifier l’hôte distant par défaut, appelez Connect à nouveau avec le point de terminaison souhaité.
Notes
Si le socket a été précédemment déconnecté, vous ne pouvez pas utiliser cette méthode pour restaurer la connexion. Utilisez l’une des méthodes asynchrones BeginConnect pour vous reconnecter. Il s’agit d’une limitation du fournisseur sous-jacent.
Notes
Ce membre génère des informations de traçage lorsque vous activez le traçage réseau dans votre application. Pour plus d’informations, consultez Suivi réseau dans .NET Framework.