Compartir a través de


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

CAsyncSocket Class

Gráfico de jerarquías

CAsyncSocket::Accept

CAsyncSocket::Bind

CAsyncSocket::GetSockName

CAsyncSocket::Create

CAsyncSocket::AsyncSelect