Share via


CAsyncSocket::Connect

Llame a esta función miembro para establecer una conexión a un socket no relacionado de secuencia o de datagrama.

BOOL Connect(
   LPCTSTR lpszHostAddress,
   UINT nHostPort 
);
BOOL Connect(
   const SOCKADDR* lpSockAddr,
   int nSockAddrLen 
);

Parámetros

  • lpszHostAddress
    La dirección de red de socket con el que este objeto está conectado: un nombre de equipo como “ftp.microsoft.com”, o un número dotted como “128.56.22.8”.

  • nHostPort
    El puerto que identifica la aplicación de socket.

  • lpSockAddr
    Un puntero a una estructura de SOCKADDR que contiene la dirección de socket conectado.

  • nSockAddrLen
    la longitud de la dirección en lpSockAddr en bytes.

Valor devuelto

Distinto de cero si la función es correcta; si no 0, y un código de error específico puede recuperar llamando a GetLastError.Si esto indica un código de error de WSAEWOULDBLOCK, y la aplicación usa devoluciones reemplazable, la aplicación recibirá un mensaje de OnConnect cuando la operación conectarse.Los errores siguientes se aplican a esta función miembro:

  • WSANOTINITIALISED A AfxSocketInit correcto debe aparecer antes de utilizar esta API.

  • La implementación de Windows Sockets deWSAENETDOWN The detectó que produjo el subsistema de la red.

  • La dirección especificada speedWSAEADDRINUSE ya está en uso.

  • La llamada de Windows Sockets de bloqueo deWSAEINPROGRESS A está en curso.

  • La dirección especificada speedWSAEADDRNOTAVAIL no está disponible en el equipo local.

  • Las direcciones deWSAEAFNOSUPPORT en la familia especificada no se pueden utilizar con este socket.

  • El intento deWSAECONNREFUSED speed conectarse se han rechazado.

  • Se requiere la dirección de destino deWSAEDESTADDRREQ A.

  • El argumento deWSAEFAULT The nSockAddrLen es incorrecto.

  • Dirección del host deWSAEINVAL Invalid.

  • El socket deWSAEISCONN The ya está conectado.

  • Los descriptores de archivo deWSAEMFILE No Más están disponibles.

  • Red deWSAENETUNREACH no se puede obtener acceso desde este host en este momento.

  • WSAENOBUFS ningún espacio en búfer está disponible.El socket no puede estar en línea.

  • WSAENOTSOCK El descriptor no es un socket.

  • Intento deWSAETIMEDOUT de conectar agotó el tiempo de espera sin el establecimiento de una conexión.

  • El socket deWSAEWOULDBLOCK The se marca como sin bloquear y la conexión no se puede completar inmediatamente.

Comentarios

Si el socket se desenlaza, los valores únicos se asignan a la asociación local por el sistema, y el socket se marcará enlazado.Tenga en cuenta que si el campo de dirección de la estructura del nombre es todos los ceros, Conectar devolverá cero.Para obtener información de error extendida, llame a la función miembro de GetLastError .

Para los sockets de secuencia (tipo SOCK_STREAM), una conexión activa se inicia el host externo.Cuando la llamada de socket se completa correctamente, el socket está listo para enviar y recibir datos.

Para un socket de datagrama (tipo SOCK_DGRAM), se establece un destino predeterminado, que se utilizará en las llamadas subsiguientes de Enviar y de Recibir .

Requisitos

encabezado: afxsock.h

Vea también

Referencia

Clase de CAsyncSocket

Gráfico de jerarquía

CAsyncSocket::Accept

CAsyncSocket::Bind

CAsyncSocket::GetSockName

CAsyncSocket::Create

CAsyncSocket::AsyncSelect