Socket.Connect Método

Definição

Estabelece uma conexão com o host remoto.Establishes a connection to a remote host.

Sobrecargas

Connect(String, Int32)

Estabelece uma conexão com o host remoto.Establishes a connection to a remote host. O host é especificado por um nome do host e um número da porta.The host is specified by a host name and a port number.

Connect(IPAddress[], Int32)

Estabelece uma conexão com o host remoto.Establishes a connection to a remote host. O host é especificado por uma matriz de endereços IP e um número da porta.The host is specified by an array of IP addresses and a port number.

Connect(EndPoint)

Estabelece uma conexão com o host remoto.Establishes a connection to a remote host.

Connect(IPAddress, Int32)

Estabelece uma conexão com o host remoto.Establishes a connection to a remote host. O host é especificado por um endereço IP e um número da porta.The host is specified by an IP address and a port number.

Connect(String, Int32)

Estabelece uma conexão com o host remoto.Establishes a connection to a remote host. O host é especificado por um nome do host e um número da porta.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

O nome do host remoto.The name of the remote host.

port
Int32

O número da porta do host remoto.The port number of the remote host.

Exceções

host é null.host is null.

O número da porta é inválido.The port number is not valid.

Ocorreu um erro ao tentar acessar o soquete.An error occurred when attempting to access the socket.

O Socket foi fechado.The Socket has been closed.

Este método é válido para soquetes nas famílias InterNetwork ou InterNetworkV6.This method is valid for sockets in the InterNetwork or InterNetworkV6 families.

O Socket foi colocado em um estado de escuta chamando Listen(Int32).The Socket has been placed in a listening state by calling Listen(Int32).

Exemplos

O exemplo de código a seguir se conecta a um ponto de extremidade remoto e, em seguida, verifica a conexão.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");
}		

Comentários

Se você estiver usando um protocolo orientado a conexão como TCP, o Connect método estabelecerá sincronicamente uma conexão de rede entre LocalEndPoint o e o 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. Se você estiver usando um protocolo sem conexão, Connect o estabelecerá um host remoto padrão.If you are using a connectionless protocol, Connect establishes a default remote host. Depois de chamar Connect , você pode enviar dados para o dispositivo remoto com o Send método ou receber dados do dispositivo remoto com o 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.

Se você estiver usando um protocolo sem conexão, como o UDP, não precisará chamar Connect antes de enviar e receber dados.If you are using a connectionless protocol such as UDP, you do not have to call Connect before sending and receiving data. Você pode usar SendTo e ReceiveFrom para se comunicar de forma síncrona com um host remoto.You can use SendTo and ReceiveFrom to synchronously communicate with a remote host. Se você chamar Connect quaisquer datagramas que chegam de um endereço diferente do padrão especificado, eles serão descartados.If you do call Connect any datagrams that arrive from an address other than the specified default will be discarded. Se você quiser definir o host remoto padrão para um endereço de difusão, primeiro você deve chamar o SetSocketOption método e definir a opção socket como SocketOptionName.Broadcast , ou gerará Connect um 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. Se você receber um SocketException , use a SocketException.ErrorCode propriedade para obter o código de erro específico.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. Depois de obter esse código, consulte a documentação do código de erro da API do Windows Sockets versão 2 para obter uma descrição detalhada do erro.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 o método será bloqueado, a menos que você defina especificamente a Blocking propriedade como false antes de chamar Connect .Connect method will block, unless you specifically set the Blocking property to false prior to calling Connect. Se você estiver usando um protocolo orientado a conexão como TCP e desabilitar o bloqueio, Connect o emitirá um SocketException porque ele precisa de tempo para fazer a conexão.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. Os protocolos sem conexão não lançarão uma exceção, pois eles simplesmente estabelecem um host remoto padrão.Connectionless protocols will not throw an exception because they simply establish a default remote host. Você pode usar SocketException.ErrorCode para obter o código de erro específico.You can use SocketException.ErrorCode to obtain the specific error code. Depois de obter esse código, consulte a documentação do código de erro da API do Windows Sockets versão 2 para obter uma descrição detalhada do erro.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error. Se o erro retornou WSAEWOULDBLOCK, a conexão de host remoto foi iniciada por uma conexão orientada Socket , mas ainda não foi concluída com êxito.If the error returned WSAEWOULDBLOCK, the remote host connection has been initiated by a connection-oriented Socket, but has not yet completed successfully. Use o Poll método para determinar quando o Socket foi concluído a conexão.Use the Poll method to determine when the Socket is finished connecting.

Se o IPv6 estiver habilitado e o Connect(String, Int32) método for chamado para se conectar a um host que seja resolvido para endereços IPv6 e IPv4, a conexão com o endereço IPv6 será tentada primeiro antes do endereço 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. Isso pode ter o efeito de atrasar o tempo para estabelecer a conexão se o host não estiver escutando no endereço IPv6.This may have the effect of delaying the time to establish the connection if the host is not listening on the IPv6 address.

Observação

Se você estiver usando um protocolo orientado a conexão e não chamou Bind antes Connect de chamar, o provedor de serviços subjacente atribuirá o endereço de rede local e o número da porta.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. Se você estiver usando um protocolo sem conexão, o provedor de serviços não atribuirá um endereço de rede local e um número de porta até que você conclua uma operação de envio ou recebimento.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. Se você quiser alterar o host remoto padrão, chame Connect novamente com o ponto de extremidade desejado.If you want to change the default remote host, call Connect again with the desired endpoint.

Observação

Se o soquete tiver sido desconectado anteriormente, você não poderá usar esse método para restaurar a conexão.If the socket has been previously disconnected, then you cannot use this method to restore the connection. Use um dos métodos assíncronos BeginConnect para se reconectar.Use one of the asynchronous BeginConnect methods to reconnect. Essa é uma limitação do provedor subjacente.This is a limitation of the underlying provider.

Observação

Esse membro emite o rastreamento de informações quando você ativa o rastreamento de rede em seu aplicativo.This member outputs trace information when you enable network tracing in your application. Para obter mais informações, consulte rastreamento de rede na .NET Framework.For more information, see Network Tracing in the .NET Framework.

Aplica-se a

Connect(IPAddress[], Int32)

Estabelece uma conexão com o host remoto.Establishes a connection to a remote host. O host é especificado por uma matriz de endereços IP e um número da porta.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[]

Os endereços IP do host remoto.The IP addresses of the remote host.

port
Int32

O número da porta do host remoto.The port number of the remote host.

Exceções

addresses é null.addresses is null.

O número da porta é inválido.The port number is not valid.

Ocorreu um erro ao tentar acessar o soquete.An error occurred when attempting to access the socket.

O Socket foi fechado.The Socket has been closed.

Este método é válido para soquetes nas famílias InterNetwork ou InterNetworkV6.This method is valid for sockets in the InterNetwork or InterNetworkV6 families.

O comprimento de address é zero.The length of address is zero.

O Socket foi colocado em um estado de escuta chamando Listen(Int32).The Socket has been placed in a listening state by calling Listen(Int32).

Exemplos

O exemplo de código a seguir se conecta a um ponto de extremidade remoto e, em seguida, verifica a conexão.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");
}		

Comentários

Esse método é normalmente usado imediatamente após uma chamada para GetHostAddresses , que pode retornar vários endereços IP para um único host.This method is typically used immediately after a call to GetHostAddresses, which can return multiple IP addresses for a single host. Se você estiver usando um protocolo orientado a conexão como TCP, o Connect método estabelecerá sincronicamente uma conexão de rede entre LocalEndPoint o e o ponto de extremidade 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. Se você estiver usando um protocolo sem conexão, Connect o estabelecerá um host remoto padrão.If you are using a connectionless protocol, Connect establishes a default remote host. Depois de chamar Connect , você pode enviar dados para o dispositivo remoto com o Send método ou receber dados do dispositivo remoto com o 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.

Se você estiver usando um protocolo sem conexão, como o UDP, não precisará chamar Connect antes de enviar e receber dados.If you are using a connectionless protocol such as UDP, you do not have to call Connect before sending and receiving data. Você pode usar SendTo e ReceiveFrom para se comunicar de forma síncrona com um host remoto.You can use SendTo and ReceiveFrom to synchronously communicate with a remote host. Se você chamar Connect quaisquer datagramas que chegam de um endereço diferente do padrão especificado, eles serão descartados.If you do call Connect any datagrams that arrive from an address other than the specified default will be discarded. Se você quiser definir o host remoto padrão para um endereço de difusão, primeiro você deve chamar o SetSocketOption método e definir a opção socket como SocketOptionName.Broadcast , ou gerará Connect um 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. Se você receber um SocketException , use a SocketException.ErrorCode propriedade para obter o código de erro específico.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. Depois de obter esse código, consulte a documentação do código de erro da API do Windows Sockets versão 2 para obter uma descrição detalhada do erro.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 o método será bloqueado, a menos que você defina especificamente a Blocking propriedade como false antes de chamar Connect .Connect method will block, unless you specifically set the Blocking property to false prior to calling Connect. Se você estiver usando um protocolo orientado a conexão como TCP e desabilitar o bloqueio, Connect o emitirá um SocketException porque ele precisa de tempo para fazer a conexão.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. Os protocolos sem conexão não lançarão uma exceção, pois eles simplesmente estabelecem um host remoto padrão.Connectionless protocols will not throw an exception because they simply establish a default remote host. Você pode usar SocketException.ErrorCode para obter o código de erro específico.You can use SocketException.ErrorCode to obtain the specific error code. Depois de obter esse código, consulte a documentação do código de erro da API do Windows Sockets versão 2 para obter uma descrição detalhada do erro.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error. Se o erro retornou WSAEWOULDBLOCK, a conexão de host remoto foi iniciada por uma conexão orientada Socket , mas ainda não foi concluída com êxito.If the error returned WSAEWOULDBLOCK, the remote host connection has been initiated by a connection-oriented Socket, but has not yet completed successfully. Use o Poll método para determinar quando o Socket foi concluído a conexão.Use the Poll method to determine when the Socket is finished connecting.

Observação

Se você estiver usando um protocolo orientado a conexão e não chamou Bind antes Connect de chamar, o provedor de serviços subjacente atribuirá o endereço de rede local e o número da porta.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. Se você estiver usando um protocolo sem conexão, o provedor de serviços não atribuirá um endereço de rede local e um número de porta até que você conclua uma operação de envio ou recebimento.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. Se você quiser alterar o host remoto padrão, chame Connect novamente com o ponto de extremidade desejado.If you want to change the default remote host, call Connect again with the desired endpoint.

Observação

Se o soquete tiver sido desconectado anteriormente, você não poderá usar esse método para restaurar a conexão.If the socket has been previously disconnected, then you cannot use this method to restore the connection. Use um dos métodos assíncronos BeginConnect para se reconectar.Use one of the asynchronous BeginConnect methods to reconnect. Essa é uma limitação do provedor subjacente.This is a limitation of the underlying provider.

Observação

Esse membro emite o rastreamento de informações quando você ativa o rastreamento de rede em seu aplicativo.This member outputs trace information when you enable network tracing in your application. Para obter mais informações, consulte rastreamento de rede na .NET Framework.For more information, see Network Tracing in the .NET Framework.

Aplica-se a

Connect(EndPoint)

Estabelece uma conexão com o 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

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

Exceções

remoteEP é null.remoteEP is null.

Ocorreu um erro ao tentar acessar o soquete.An error occurred when attempting to access the socket.

O Socket foi fechado.The Socket has been closed.

Um chamador mais alto na pilha de chamadas não tem permissão para a operação solicitada.A caller higher in the call stack does not have permission for the requested operation.

O Socket foi colocado em um estado de escuta chamando Listen(Int32).The Socket has been placed in a listening state by calling Listen(Int32).

Exemplos

O exemplo de código a seguir se conecta a um ponto de extremidade remoto e, em seguida, verifica a conexão.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

Comentários

Se você estiver usando um protocolo orientado a conexão como TCP, o Connect método estabelecerá sincronicamente uma conexão de rede entre LocalEndPoint o e o ponto de extremidade 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. Se você estiver usando um protocolo sem conexão, Connect o estabelecerá um host remoto padrão.If you are using a connectionless protocol, Connect establishes a default remote host. Depois de chamar Connect , você pode enviar dados para o dispositivo remoto com o Send método ou receber dados do dispositivo remoto com o 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.

Se você estiver usando um protocolo sem conexão, como o UDP, não precisará chamar Connect antes de enviar e receber dados.If you are using a connectionless protocol such as UDP, you do not have to call Connect before sending and receiving data. Você pode usar SendTo e ReceiveFrom para se comunicar de forma síncrona com um host remoto.You can use SendTo and ReceiveFrom to synchronously communicate with a remote host. Se você chamar Connect , todos os datagramas que chegam de um endereço diferente do padrão especificado serão descartados.If you do call Connect, any datagrams that arrive from an address other than the specified default will be discarded. Se você quiser definir o host remoto padrão para um endereço de difusão, primeiro você deve chamar o SetSocketOption método e definir a opção socket como SocketOptionName.Broadcast , ou gerará Connect um 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. Se você receber um SocketException , use a SocketException.ErrorCode propriedade para obter o código de erro específico.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. Depois de obter esse código, consulte a documentação do código de erro da API do Windows Sockets versão 2 para obter uma descrição detalhada do erro.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

O Connect método será bloqueado, a menos que você defina especificamente a Blocking propriedade como false antes de chamar Connect .The Connect method will block, unless you specifically set the Blocking property to false prior to calling Connect. Se você estiver usando um protocolo orientado a conexão como TCP e desabilitar o bloqueio, Connect o emitirá um SocketException porque ele precisa de tempo para fazer a conexão.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. Os protocolos sem conexão não lançarão uma exceção, pois eles simplesmente estabelecem um host remoto padrão.Connectionless protocols will not throw an exception because they simply establish a default remote host. Você pode usar SocketException.ErrorCode para obter o código de erro específico.You can use SocketException.ErrorCode to obtain the specific error code. Depois de obter esse código, consulte a documentação do código de erro da API do Windows Sockets versão 2 para obter uma descrição detalhada do erro.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error. Se o erro retornou WSAEWOULDBLOCK, a conexão de host remoto foi iniciada por uma conexão orientada Socket , mas ainda não foi concluída com êxito.If the error returned WSAEWOULDBLOCK, the remote host connection has been initiated by a connection-oriented Socket, but has not yet completed successfully. Use o Poll método para determinar quando o Socket foi concluído a conexão.Use the Poll method to determine when the Socket is finished connecting.

Observação

Se você estiver usando um protocolo orientado a conexão e não chamou Bind antes Connect de chamar, o provedor de serviços subjacente atribuirá o endereço de rede local e o número da porta.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. Se você estiver usando um protocolo sem conexão, o provedor de serviços não atribuirá um endereço de rede local e um número de porta até que você conclua uma operação de envio ou recebimento.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. Se você quiser alterar o host remoto padrão, chame Connect novamente com o ponto de extremidade desejado.If you want to change the default remote host, call Connect again with the desired endpoint.

Observação

Se o soquete tiver sido desconectado anteriormente, você não poderá usar esse método para restaurar a conexão.If the socket has been previously disconnected, then you cannot use this method to restore the connection. Use um dos métodos assíncronos BeginConnect para se reconectar.Use one of the asynchronous BeginConnect methods to reconnect. Essa é uma limitação do provedor subjacente.This is a limitation of the underlying provider.

Observação

Esse membro emite o rastreamento de informações quando você ativa o rastreamento de rede em seu aplicativo.This member outputs trace information when you enable network tracing in your application. Para obter mais informações, consulte rastreamento de rede na .NET Framework.For more information, see Network Tracing in the .NET Framework.

Confira também

Aplica-se a

Connect(IPAddress, Int32)

Estabelece uma conexão com o host remoto.Establishes a connection to a remote host. O host é especificado por um endereço IP e um número da porta.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

O endereço IP do host remoto.The IP address of the remote host.

port
Int32

O número da porta do host remoto.The port number of the remote host.

Exceções

address é null.address is null.

O número da porta é inválido.The port number is not valid.

Ocorreu um erro ao tentar acessar o soquete.An error occurred when attempting to access the socket.

O Socket foi fechado.The Socket has been closed.

Este método é válido para soquetes nas famílias InterNetwork ou InterNetworkV6.This method is valid for sockets in the InterNetwork or InterNetworkV6 families.

O comprimento de address é zero.The length of address is zero.

O Socket foi colocado em um estado de escuta chamando Listen(Int32).The Socket has been placed in a listening state by calling Listen(Int32).

Exemplos

O exemplo de código a seguir se conecta a um ponto de extremidade remoto e, em seguida, verifica a conexão.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");
}		

Comentários

Se você estiver usando um protocolo orientado a conexão como TCP, o Connect método estabelecerá sincronicamente uma conexão de rede entre LocalEndPoint o e o ponto de extremidade 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. Se você estiver usando um protocolo sem conexão, Connect o estabelecerá um host remoto padrão.If you are using a connectionless protocol, Connect establishes a default remote host. Depois de chamar Connect , você pode enviar dados para o dispositivo remoto com o Send método ou receber dados do dispositivo remoto com o 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.

Se você estiver usando um protocolo sem conexão, como o UDP, não precisará chamar Connect antes de enviar e receber dados.If you are using a connectionless protocol such as UDP, you do not have to call Connect before sending and receiving data. Você pode usar SendTo e ReceiveFrom para se comunicar de forma síncrona com um host remoto.You can use SendTo and ReceiveFrom to synchronously communicate with a remote host. Se você chamar Connect quaisquer datagramas que chegam de um endereço diferente do padrão especificado, eles serão descartados.If you do call Connect any datagrams that arrive from an address other than the specified default will be discarded. Se você quiser definir o host remoto padrão para um endereço de difusão, primeiro você deve chamar o SetSocketOption método e definir a opção socket como SocketOptionName.Broadcast , ou gerará Connect um 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. Se você receber um SocketException , use a SocketException.ErrorCode propriedade para obter o código de erro específico.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. Depois de obter esse código, consulte a documentação do código de erro da API do Windows Sockets versão 2 para obter uma descrição detalhada do erro.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 o método será bloqueado, a menos que você defina especificamente a Blocking propriedade como false antes de chamar Connect .Connect method will block, unless you specifically set the Blocking property to false prior to calling Connect. Se você estiver usando um protocolo orientado a conexão como TCP e desabilitar o bloqueio, Connect o emitirá um SocketException porque ele precisa de tempo para fazer a conexão.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. Os protocolos sem conexão não lançarão uma exceção, pois eles simplesmente estabelecem um host remoto padrão.Connectionless protocols will not throw an exception because they simply establish a default remote host. Você pode usar SocketException.ErrorCode para obter o código de erro específico.You can use SocketException.ErrorCode to obtain the specific error code. Depois de obter esse código, consulte a documentação do código de erro da API do Windows Sockets versão 2 para obter uma descrição detalhada do erro.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error. Se o erro retornou WSAEWOULDBLOCK, a conexão de host remoto foi iniciada por uma conexão orientada Socket , mas ainda não foi concluída com êxito.If the error returned WSAEWOULDBLOCK, the remote host connection has been initiated by a connection-oriented Socket, but has not yet completed successfully. Use o Poll método para determinar quando o Socket foi concluído a conexão.Use the Poll method to determine when the Socket is finished connecting.

Observação

Se você estiver usando um protocolo orientado a conexão e não chamou Bind antes Connect de chamar, o provedor de serviços subjacente atribuirá o endereço de rede local e o número da porta.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. Se você estiver usando um protocolo sem conexão, o provedor de serviços não atribuirá um endereço de rede local e um número de porta até que você conclua uma operação de envio ou recebimento.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. Se você quiser alterar o host remoto padrão, chame Connect novamente com o ponto de extremidade desejado.If you want to change the default remote host, call Connect again with the desired endpoint.

Observação

Se o soquete tiver sido desconectado anteriormente, você não poderá usar esse método para restaurar a conexão.If the socket has been previously disconnected, then you cannot use this method to restore the connection. Use um dos métodos assíncronos BeginConnect para se reconectar.Use one of the asynchronous BeginConnect methods to reconnect. Essa é uma limitação do provedor subjacente.This is a limitation of the underlying provider.

Observação

Esse membro emite o rastreamento de informações quando você ativa o rastreamento de rede em seu aplicativo.This member outputs trace information when you enable network tracing in your application. Para obter mais informações, consulte rastreamento de rede na .NET Framework.For more information, see Network Tracing in the .NET Framework.

Aplica-se a