Provided by: manpages-es_1.55-8_all bug

NOMBRE

       connect - inicia una conexión en un conector (socket)

SINOPSIS

       #include <sys/types.h>
       #include <sys/socket.h>

       int  connect(int  sockfd,  const  struct sockaddr *serv_addr, socklen_t
       addrlen);

DESCRIPCIÓN

       El descriptor de fichero sockfd debe referenciar a un conector.  Si  el
       conector  es  del tipo SOCK_DGRAM entonces la dirección serv_addr es la
       dirección a la que por defecto se envían  los  datagramas  y  la  única
       dirección  de  la que se reciben datagramas. Si el conector es del tipo
       SOCK_STREAM o SOCK_SEQPACKET, esta llamada intenta hacer una conexión a
       otro  conector.  El  otro  conector está especificado por serv_addr, la
       cual  es  una  dirección  (de  longitud  addrlen)  en  el  espacio   de
       comunicaciones del conector.  Cada espacio de comunicaciones interpreta
       el parámetro serv_addr a su manera.

       Generalmente, los conectores de protocolos orientados a conexión pueden
       conectarse con éxito mediante connect una vez solamente; los conectores
       de protocolos no orientados a conexión pueden  usar  connect  múltiples
       veces  para  cambiar  sus asociaciones. Los conectores de protocolos no
       orientados a conexión pueden disolver la asociación conectandose a  una
       dirección  en la que al miembro sa_family de sockaddr se le ha asignado
       el valor AF_UNSPEC.

VALOR DEVUELTO

       Si la conexión o enlace tiene éxito, se devuelve 0. En caso  de  error,
       se devuelve -1, y se asigna a la variable errno un valor apropiado.

ERRORES

       Los  siguientes  sólo  son  errores generales de conector.  Puede haber
       otros códigos de error específicos del dominio.

       EBADF  El descriptor del fichero no es un índice válido de la tabla  de
              descriptores.

       EFAULT La  estructura  de dirección del conector está fuera del espacio
              de direcciones del usuario.

       ENOTSOCK
              El descriptor del fichero no está asociado con un conector.

       EISCONN
              El conector ya está conectado.

       ECONNREFUSED
              No hay nadie escuchando en la dirección remota.

       ETIMEDOUT
              Finalizó el plazo de tiempo mientras se intentaba  la  conexión.
              El  servidor  puede  estar demasiado ocupado para aceptar nuevas
              conexiones. Dese cuenta que  para  conectores  IP  el  plazo  de
              tiempo  puede  ser  muy  largo  cuando  se  han  habilitado  los
              "syncookies" en el servidor.

       ENETUNREACH
              Red inaccesible.

       EADDRINUSE
              La dirección local ya está en uso.

       EINPROGRESS
              El conector es no bloqueante y la conexión no puede  completarse
              inmediatamente.   Es  posible  usar  select(2)  o  poll(2)  para
              completarla seleccionando el conector  para  escritura.  Después
              que   select   indique   que   la   escritura  es  posible,  use
              getsockopt(2) para leer la opción SO_ERROR al  nivel  SOL_SOCKET
              para determinar si connect se completó con éxito (BSO_ERROR será
              cero) o sin éxito (BSO_ERROR será uno de los  códigos  de  error
              usuales listados aquí, explicando la razón del fallo).

       EALREADY
              El  conector  es  no  bloqueante y todavía no se ha terminado un
              intento de conexión anterior.

       EAGAIN No hay más puertos locales libres o las entradas en la cache  de
              enrutamiento  son  insuficientes.  Para  PF_INET  vea  la sysctl
              net.ipv4.ip_local_port_range en ip(7) para ver cómo  incrementar
              el número de puertos locales.

       EAFNOSUPPORT
              La  dirección pasada no tiene la familia de direcciones correcta
              en su campo sa_family.

       EACCES, EPERM
              El usuario ha intentado conectarse a una dirección  de  difusión
              (broadcast)  sin  que  el  conector  tenga  activa  la opción de
              difusión, o la petición de conexión  ha  fallado  debido  a  una
              regla del cortafuegos local.

CONFORME A

       SVr4,  4.4BSD (la función connect apareció por primera vez en BSD 4.2).
       SVr4  documenta  adicionalmente  los   códigos   de   error   generales
       EADDRNOTAVAIL,  EINVAL,  EAFNOSUPPORT,  EALREADY,  EINTR,  EPROTOTYPE y
       ENOSR.  También documenta muchas condiciones de error  adicionales  que
       no se describen aquí.

NOTA

       El  tercer  argumento de connect es en realidad un entero (y esto es lo
       que tienen BSD 4.*, libc4 y libc5).  Cierta confusión en POSIX dio como
       resultado  el  actual  socklen_t.   El estándar propuesto todavía no ha
       sido adoptado pero glibc2 ya lo sigue y también  tiene  socklen_t.  Vea
       también accept(2).

FALLOS (BUGS)

       Desconectar  un conector llamando a connect con una dirección AF_UNSPEC
       no se ha implementado todavía.

VÉASE TAMBIÉN

       accept(2), bind(2), listen(2), socket(2), getsockname(2)