Provided by: manpages-es_1.55-10_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)