Socket.Connect Socket.Connect Socket.Connect Socket.Connect Method

Definición

Establece una conexión a un host remoto.Establishes a connection to a remote host.

Sobrecargas

Connect(String, Int32) Connect(String, Int32) Connect(String, Int32) Connect(String, Int32)

Establece una conexión a un host remoto.Establishes a connection to a remote host. El host se especifica mediante un nombre de host y un número de puerto.The host is specified by a host name and a port number.

Connect(IPAddress[], Int32) Connect(IPAddress[], Int32) Connect(IPAddress[], Int32) Connect(IPAddress[], Int32)

Establece una conexión a un host remoto.Establishes a connection to a remote host. El host se especifica mediante una matriz de direcciones IP y un número de puerto.The host is specified by an array of IP addresses and a port number.

Connect(IPAddress, Int32) Connect(IPAddress, Int32) Connect(IPAddress, Int32) Connect(IPAddress, Int32)

Establece una conexión a un host remoto.Establishes a connection to a remote host. El host se especifica mediante una dirección IP y un número de puerto.The host is specified by an IP address and a port number.

Connect(EndPoint) Connect(EndPoint) Connect(EndPoint) Connect(EndPoint)

Establece una conexión a un host remoto.Establishes a connection to a remote host.

Connect(String, Int32) Connect(String, Int32) Connect(String, Int32) Connect(String, Int32)

Establece una conexión a un host remoto.Establishes a connection to a remote host. El host se especifica mediante un nombre de host y un número de puerto.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)

Parámetros

host
String String String String

Nombre del host remoto.The name of the remote host.

port
Int32 Int32 Int32 Int32

Número de puerto del host remoto.The port number of the remote host.

Excepciones

Error al intentar acceder al socket.An error occurred when attempting to access the socket.

Este método es válido para sockets de las familias InterNetwork o InterNetworkV6.This method is valid for sockets in the InterNetwork or InterNetworkV6 families.

Socket se ha colocado en un estado de escucha mediante una llamada a Listen(Int32).The Socket has been placed in a listening state by calling Listen(Int32).

Ejemplos

En el ejemplo de código siguiente se conecta a un extremo remoto y, a continuación, se comprueba la conexión.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");
}		

Comentarios

Si utiliza un protocolo orientado a la conexión, como TCP, el Connect método establece sincrónicamente una conexión LocalEndPoint de red entre y el host remoto especificado.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 utiliza un protocolo sin conexión, Connect establece un host remoto predeterminado.If you are using a connectionless protocol, Connect establishes a default remote host. Después de llamar Connect a, puede enviar datos al dispositivo remoto con el Send método o recibir datos del dispositivo remoto con el Receive método.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 utiliza un protocolo sin conexión como UDP, no tiene que llamar Connect a antes de enviar y recibir datos.If you are using a connectionless protocol such as UDP, you do not have to call Connect before sending and receiving data. Puede usar SendTo y ReceiveFrom para comunicarse de forma sincrónica con un host remoto.You can use SendTo and ReceiveFrom to synchronously communicate with a remote host. Si llama a Connect cualquier datagrama que llegue desde una dirección que no sea la predeterminada, se descartará el valor predeterminado especificado.If you do call Connect any datagrams that arrive from an address other than the specified default will be discarded. Si desea establecer el host remoto predeterminado en una dirección de difusión, primero SetSocketOption debe llamar al método y establecer la opción de socket en SocketOptionName.Broadcast, o Connect producirá una SocketExceptionexcepción.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 recibe un SocketException, utilice la SocketException.ErrorCode propiedad para obtener el código de error específico.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. Después de obtener este código, consulte la documentación del código de error de la API de Windows Sockets versión 2 para obtener una descripción detallada del error.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Connectel método se bloqueará, a menos que Blocking establezca específicamente false la propiedad en Connectantes de llamar a.Connect method will block, unless you specifically set the Blocking property to false prior to calling Connect. Si utiliza un protocolo orientado a la conexión como TCP y deshabilita el bloqueo, Connect producirá una SocketException excepción porque necesita tiempo para realizar la conexión.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. Los protocolos sin conexión no producirán una excepción porque simplemente establecen un host remoto predeterminado.Connectionless protocols will not throw an exception because they simply establish a default remote host. Puede usar SocketException.ErrorCode para obtener el código de error específico.You can use SocketException.ErrorCode to obtain the specific error code. Después de obtener este código, consulte la documentación del código de error de la API de Windows Sockets versión 2 para obtener una descripción detallada del error.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 el error devolvió WSAEWOULDBLOCK, la conexión de host remoto se ha iniciado mediante una orientada Socketa la conexión, pero aún no se ha completado correctamente.If the error returned WSAEWOULDBLOCK, the remote host connection has been initiated by a connection-oriented Socket, but has not yet completed successfully. Utilice el Poll método para determinar cuándo ha Socket finalizado la conexión de.Use the Poll method to determine when the Socket is finished connecting.

Si IPv6 está habilitado y Connect(String, Int32) se llama al método para conectarse a un host que se resuelve en las direcciones IPv6 e IPv4, la conexión a la dirección IPv6 se intentará en primer lugar antes de la dirección 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. Esto puede tener el efecto de retrasar el tiempo para establecer la conexión si el host no está escuchando en la dirección IPv6.This may have the effect of delaying the time to establish the connection if the host is not listening on the IPv6 address.

Nota

Si utiliza un protocolo orientado a conexiones y no llama a Bind antes de llamar a Connect, el proveedor de servicios subyacente asignará la dirección de red local y el número de puerto.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 utiliza un protocolo sin conexión, el proveedor de servicios no asignará una dirección de red local ni un número de puerto hasta que complete una operación de envío o recepción.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 desea cambiar el host remoto predeterminado, llame Connect de nuevo con el punto de conexión deseado.If you want to change the default remote host, call Connect again with the desired endpoint.

Nota

Si el socket se ha desconectado previamente, no puede usar este método para restaurar la conexión.If the socket has been previously disconnected, then you cannot use this method to restore the connection. Use uno de los BeginConnect métodos asincrónicos para volver a conectar.Use one of the asynchronous BeginConnect methods to reconnect. Esta es una limitación del proveedor subyacente.This is a limitation of the underlying provider.

Nota

Este miembro genera información de seguimiento cuando se habilita el seguimiento de red en la aplicación.This member outputs trace information when you enable network tracing in your application. Para obtener más información, consulte seguimiento de red en el .NET Framework.For more information, see Network Tracing in the .NET Framework.

Connect(IPAddress[], Int32) Connect(IPAddress[], Int32) Connect(IPAddress[], Int32) Connect(IPAddress[], Int32)

Establece una conexión a un host remoto.Establishes a connection to a remote host. El host se especifica mediante una matriz de direcciones IP y un número de puerto.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)

Parámetros

addresses
IPAddress[]

Direcciones IP del host remoto.The IP addresses of the remote host.

port
Int32 Int32 Int32 Int32

Número de puerto del host remoto.The port number of the remote host.

Excepciones

Error al intentar acceder al socket.An error occurred when attempting to access the socket.

Este método es válido para sockets de las familias InterNetwork o InterNetworkV6.This method is valid for sockets in the InterNetwork or InterNetworkV6 families.

La longitud de address es cero.The length of address is zero.

Socket se ha colocado en un estado de escucha mediante una llamada a Listen(Int32).The Socket has been placed in a listening state by calling Listen(Int32).

Ejemplos

En el ejemplo de código siguiente se conecta a un extremo remoto y, a continuación, se comprueba la conexión.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");
}		

Comentarios

Este método se utiliza normalmente inmediatamente después de una llamada GetHostAddressesa, que puede devolver varias direcciones IP para un único host.This method is typically used immediately after a call to GetHostAddresses, which can return multiple IP addresses for a single host. Si utiliza un protocolo orientado a la conexión, como TCP, el Connect método establece sincrónicamente una conexión LocalEndPoint de red entre y el extremo remoto especificado.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 utiliza un protocolo sin conexión, Connect establece un host remoto predeterminado.If you are using a connectionless protocol, Connect establishes a default remote host. Después de llamar Connect a, puede enviar datos al dispositivo remoto con el Send método o recibir datos del dispositivo remoto con el Receive método.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 utiliza un protocolo sin conexión como UDP, no tiene que llamar Connect a antes de enviar y recibir datos.If you are using a connectionless protocol such as UDP, you do not have to call Connect before sending and receiving data. Puede usar SendTo y ReceiveFrom para comunicarse de forma sincrónica con un host remoto.You can use SendTo and ReceiveFrom to synchronously communicate with a remote host. Si llama a Connect cualquier datagrama que llegue desde una dirección que no sea la predeterminada, se descartará el valor predeterminado especificado.If you do call Connect any datagrams that arrive from an address other than the specified default will be discarded. Si desea establecer el host remoto predeterminado en una dirección de difusión, primero SetSocketOption debe llamar al método y establecer la opción de socket en SocketOptionName.Broadcast, o Connect producirá una SocketExceptionexcepción.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 recibe un SocketException, utilice la SocketException.ErrorCode propiedad para obtener el código de error específico.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. Después de obtener este código, consulte la documentación del código de error de la API de Windows Sockets versión 2 para obtener una descripción detallada del error.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Connectel método se bloqueará, a menos que Blocking establezca específicamente false la propiedad en Connectantes de llamar a.Connect method will block, unless you specifically set the Blocking property to false prior to calling Connect. Si utiliza un protocolo orientado a la conexión como TCP y deshabilita el bloqueo, Connect producirá una SocketException excepción porque necesita tiempo para realizar la conexión.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. Los protocolos sin conexión no producirán una excepción porque simplemente establecen un host remoto predeterminado.Connectionless protocols will not throw an exception because they simply establish a default remote host. Puede usar SocketException.ErrorCode para obtener el código de error específico.You can use SocketException.ErrorCode to obtain the specific error code. Después de obtener este código, consulte la documentación del código de error de la API de Windows Sockets versión 2 para obtener una descripción detallada del error.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 el error devolvió WSAEWOULDBLOCK, la conexión de host remoto se ha iniciado mediante una orientada Socketa la conexión, pero aún no se ha completado correctamente.If the error returned WSAEWOULDBLOCK, the remote host connection has been initiated by a connection-oriented Socket, but has not yet completed successfully. Utilice el Poll método para determinar cuándo ha Socket finalizado la conexión de.Use the Poll method to determine when the Socket is finished connecting.

Nota

Si utiliza un protocolo orientado a conexiones y no llama a Bind antes de llamar a Connect, el proveedor de servicios subyacente asignará la dirección de red local y el número de puerto.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 utiliza un protocolo sin conexión, el proveedor de servicios no asignará una dirección de red local ni un número de puerto hasta que complete una operación de envío o recepción.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 desea cambiar el host remoto predeterminado, llame Connect de nuevo con el punto de conexión deseado.If you want to change the default remote host, call Connect again with the desired endpoint.

Nota

Si el socket se ha desconectado previamente, no puede usar este método para restaurar la conexión.If the socket has been previously disconnected, then you cannot use this method to restore the connection. Use uno de los BeginConnect métodos asincrónicos para volver a conectar.Use one of the asynchronous BeginConnect methods to reconnect. Esta es una limitación del proveedor subyacente.This is a limitation of the underlying provider.

Nota

Este miembro genera información de seguimiento cuando se habilita el seguimiento de red en la aplicación.This member outputs trace information when you enable network tracing in your application. Para obtener más información, consulte seguimiento de red en el .NET Framework.For more information, see Network Tracing in the .NET Framework.

Connect(IPAddress, Int32) Connect(IPAddress, Int32) Connect(IPAddress, Int32) Connect(IPAddress, Int32)

Establece una conexión a un host remoto.Establishes a connection to a remote host. El host se especifica mediante una dirección IP y un número de puerto.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)

Parámetros

address
IPAddress IPAddress IPAddress IPAddress

Dirección IP del host remoto.The IP address of the remote host.

port
Int32 Int32 Int32 Int32

Número de puerto del host remoto.The port number of the remote host.

Excepciones

Error al intentar acceder al socket.An error occurred when attempting to access the socket.

Este método es válido para sockets de las familias InterNetwork o InterNetworkV6.This method is valid for sockets in the InterNetwork or InterNetworkV6 families.

La longitud de address es cero.The length of address is zero.

Socket se ha colocado en un estado de escucha mediante una llamada a Listen(Int32).The Socket has been placed in a listening state by calling Listen(Int32).

Ejemplos

En el ejemplo de código siguiente se conecta a un extremo remoto y, a continuación, se comprueba la conexión.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");
}		

Comentarios

Si utiliza un protocolo orientado a la conexión, como TCP, el Connect método establece sincrónicamente una conexión LocalEndPoint de red entre y el extremo remoto especificado.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 utiliza un protocolo sin conexión, Connect establece un host remoto predeterminado.If you are using a connectionless protocol, Connect establishes a default remote host. Después de llamar Connect a, puede enviar datos al dispositivo remoto con el Send método o recibir datos del dispositivo remoto con el Receive método.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 utiliza un protocolo sin conexión como UDP, no tiene que llamar Connect a antes de enviar y recibir datos.If you are using a connectionless protocol such as UDP, you do not have to call Connect before sending and receiving data. Puede usar SendTo y ReceiveFrom para comunicarse de forma sincrónica con un host remoto.You can use SendTo and ReceiveFrom to synchronously communicate with a remote host. Si llama a Connect cualquier datagrama que llegue desde una dirección que no sea la predeterminada, se descartará el valor predeterminado especificado.If you do call Connect any datagrams that arrive from an address other than the specified default will be discarded. Si desea establecer el host remoto predeterminado en una dirección de difusión, primero SetSocketOption debe llamar al método y establecer la opción de socket en SocketOptionName.Broadcast, o Connect producirá una SocketExceptionexcepción.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 recibe un SocketException, utilice la SocketException.ErrorCode propiedad para obtener el código de error específico.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. Después de obtener este código, consulte la documentación del código de error de la API de Windows Sockets versión 2 para obtener una descripción detallada del error.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Connectel método se bloqueará, a menos que Blocking establezca específicamente false la propiedad en Connectantes de llamar a.Connect method will block, unless you specifically set the Blocking property to false prior to calling Connect. Si utiliza un protocolo orientado a la conexión como TCP y deshabilita el bloqueo, Connect producirá una SocketException excepción porque necesita tiempo para realizar la conexión.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. Los protocolos sin conexión no producirán una excepción porque simplemente establecen un host remoto predeterminado.Connectionless protocols will not throw an exception because they simply establish a default remote host. Puede usar SocketException.ErrorCode para obtener el código de error específico.You can use SocketException.ErrorCode to obtain the specific error code. Después de obtener este código, consulte la documentación del código de error de la API de Windows Sockets versión 2 para obtener una descripción detallada del error.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 el error devolvió WSAEWOULDBLOCK, la conexión de host remoto se ha iniciado mediante una orientada Socketa la conexión, pero aún no se ha completado correctamente.If the error returned WSAEWOULDBLOCK, the remote host connection has been initiated by a connection-oriented Socket, but has not yet completed successfully. Utilice el Poll método para determinar cuándo ha Socket finalizado la conexión de.Use the Poll method to determine when the Socket is finished connecting.

Nota

Si utiliza un protocolo orientado a conexiones y no llama a Bind antes de llamar a Connect, el proveedor de servicios subyacente asignará la dirección de red local y el número de puerto.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 utiliza un protocolo sin conexión, el proveedor de servicios no asignará una dirección de red local ni un número de puerto hasta que complete una operación de envío o recepción.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 desea cambiar el host remoto predeterminado, llame Connect de nuevo con el punto de conexión deseado.If you want to change the default remote host, call Connect again with the desired endpoint.

Nota

Si el socket se ha desconectado previamente, no puede usar este método para restaurar la conexión.If the socket has been previously disconnected, then you cannot use this method to restore the connection. Use uno de los BeginConnect métodos asincrónicos para volver a conectar.Use one of the asynchronous BeginConnect methods to reconnect. Esta es una limitación del proveedor subyacente.This is a limitation of the underlying provider.

Nota

Este miembro genera información de seguimiento cuando se habilita el seguimiento de red en la aplicación.This member outputs trace information when you enable network tracing in your application. Para obtener más información, consulte seguimiento de red en el .NET Framework.For more information, see Network Tracing in the .NET Framework.

Connect(EndPoint) Connect(EndPoint) Connect(EndPoint) Connect(EndPoint)

Establece una conexión a un host remoto.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)

Parámetros

remoteEP
EndPoint EndPoint EndPoint EndPoint

EndPoint que representa el dispositivo remoto.An EndPoint that represents the remote device.

Excepciones

Error al intentar acceder al socket.An error occurred when attempting to access the socket.

Un llamador de la pila de llamadas no tiene permiso para la operación solicitada.A caller higher in the call stack does not have permission for the requested operation.

Socket se ha colocado en un estado de escucha mediante una llamada a Listen(Int32).The Socket has been placed in a listening state by calling Listen(Int32).

Ejemplos

En el ejemplo de código siguiente se conecta a un extremo remoto y, a continuación, se comprueba la conexión.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

Comentarios

Si utiliza un protocolo orientado a la conexión, como TCP, el Connect método establece sincrónicamente una conexión LocalEndPoint de red entre y el extremo remoto especificado.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 utiliza un protocolo sin conexión, Connect establece un host remoto predeterminado.If you are using a connectionless protocol, Connect establishes a default remote host. Después de llamar Connecta, puede enviar datos al dispositivo remoto con el Send método o recibir datos del dispositivo remoto con el Receive método.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 utiliza un protocolo sin conexión como UDP, no tiene que llamar Connect a antes de enviar y recibir datos.If you are using a connectionless protocol such as UDP, you do not have to call Connect before sending and receiving data. Puede usar SendTo y ReceiveFrom para comunicarse de forma sincrónica con un host remoto.You can use SendTo and ReceiveFrom to synchronously communicate with a remote host. Si realiza una llamada Connecta, se descartarán los datagramas que lleguen desde una dirección distinta del valor predeterminado especificado.If you do call Connect, any datagrams that arrive from an address other than the specified default will be discarded. Si desea establecer el host remoto predeterminado en una dirección de difusión, primero SetSocketOption debe llamar al método y establecer la opción de socket en SocketOptionName.Broadcast, o Connect producirá una SocketExceptionexcepción.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 recibe un SocketException, utilice la SocketException.ErrorCode propiedad para obtener el código de error específico.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. Después de obtener este código, consulte la documentación del código de error de la API de Windows Sockets versión 2 para obtener una descripción detallada del error.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

El Connect método se bloqueará, a menos que establezca Blocking específicamente la false propiedad en antes Connectde llamar a.The Connect method will block, unless you specifically set the Blocking property to false prior to calling Connect. Si utiliza un protocolo orientado a la conexión como TCP y deshabilita el bloqueo, Connect producirá una SocketException excepción porque necesita tiempo para realizar la conexión.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. Los protocolos sin conexión no producirán una excepción porque simplemente establecen un host remoto predeterminado.Connectionless protocols will not throw an exception because they simply establish a default remote host. Puede usar SocketException.ErrorCode para obtener el código de error específico.You can use SocketException.ErrorCode to obtain the specific error code. Después de obtener este código, consulte la documentación del código de error de la API de Windows Sockets versión 2 para obtener una descripción detallada del error.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 el error devolvió WSAEWOULDBLOCK, la conexión de host remoto se ha iniciado mediante una orientada Socketa la conexión, pero aún no se ha completado correctamente.If the error returned WSAEWOULDBLOCK, the remote host connection has been initiated by a connection-oriented Socket, but has not yet completed successfully. Utilice el Poll método para determinar cuándo ha Socket finalizado la conexión de.Use the Poll method to determine when the Socket is finished connecting.

Nota

Si utiliza un protocolo orientado a conexiones y no llama a Bind antes de llamar a Connect, el proveedor de servicios subyacente asignará la dirección de red local y el número de puerto.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 utiliza un protocolo sin conexión, el proveedor de servicios no asignará una dirección de red local ni un número de puerto hasta que complete una operación de envío o recepción.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 desea cambiar el host remoto predeterminado, llame Connect de nuevo con el punto de conexión deseado.If you want to change the default remote host, call Connect again with the desired endpoint.

Nota

Si el socket se ha desconectado previamente, no puede usar este método para restaurar la conexión.If the socket has been previously disconnected, then you cannot use this method to restore the connection. Use uno de los BeginConnect métodos asincrónicos para volver a conectar.Use one of the asynchronous BeginConnect methods to reconnect. Esta es una limitación del proveedor subyacente.This is a limitation of the underlying provider.

Nota

Este miembro genera información de seguimiento cuando se habilita el seguimiento de red en la aplicación.This member outputs trace information when you enable network tracing in your application. Para obtener más información, consulte seguimiento de red en el .NET Framework.For more information, see Network Tracing in the .NET Framework.

Seguridad

SocketPermission
para conectarse al host remoto.for connecting to the remote host. Enumeración asociada:ConnectAssociated enumeration: Connect

Consulte también:

Se aplica a