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

NOMBRE

       connect - inicia una conexion 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'ON

       El descriptor de fichero sockfd debe referenciar a un conector.  Si  el
       conector  es  del tipo SOCK_DGRAM entonces la direccion serv_addr es la
       direccion a la que por defecto se envian  los  datagramas  y  la  unica
       direccion  de  la que se reciben datagramas. Si el conector es del tipo
       SOCK_STREAM o SOCK_SEQPACKET, esta llamada intenta hacer una conexion a
       otro  conector.  El  otro  conector esta especificado por serv_addr, la
       cual  es  una  direccion  (de  longitud  addrlen)  en  el  espacio   de
       comunicaciones del conector.  Cada espacio de comunicaciones interpreta
       el parametro serv_addr a su manera.

       Generalmente, los conectores de protocolos orientados a conexion pueden
       conectarse con exito mediante connect una vez solamente; los conectores
       de protocolos no orientados a conexion pueden  usar  connect  multiples
       veces  para  cambiar  sus asociaciones. Los conectores de protocolos no
       orientados a conexion pueden disolver la asociacion conectandose a  una
       direccion  en la que al miembro sa_family de sockaddr se le ha asignado
       el valor AF_UNSPEC.

VALOR DEVUELTO

       Si la conexion o enlace tiene exito, se devuelve 0. En caso  de  error,
       se devuelve -1, y se asigna a la variable errno un valor apropiado.

ERRORES

       Los  siguientes  solo  son  errores generales de conector.  Puede haber
       otros codigos de error especificos del dominio.

       EBADF  El descriptor del fichero no es un indice valido de la tabla  de
              descriptores.

       EFAULT La  estructura  de direccion del conector esta fuera del espacio
              de direcciones del usuario.

       ENOTSOCK
              El descriptor del fichero no esta asociado con un conector.

       EISCONN
              El conector ya esta conectado.

       ECONNREFUSED
              No hay nadie escuchando en la direccion remota.

       ETIMEDOUT
              Finalizo el plazo de tiempo mientras se intentaba  la  conexion.
              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 direccion local ya esta en uso.

       EINPROGRESS
              El conector es no bloqueante y la conexion no puede  completarse
              inmediatamente.   Es  posible  usar  select(2)  o  poll(2)  para
              completarla seleccionando el conector  para  escritura.  Despues
              que   select   indique   que   la   escritura  es  posible,  use
              getsockopt(2) para leer la opcion SO_ERROR al  nivel  SOL_SOCKET
              para determinar si connect se completo con exito (BSO_ERROR sera
              cero) o sin exito (BSO_ERROR sera uno de los  codigos  de  error
              usuales listados aqui, explicando la razon del fallo).

       EALREADY
              El  conector  es  no  bloqueante y todavia no se ha terminado un
              intento de conexion anterior.

       EAGAIN No hay mas 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 como  incrementar
              el numero de puertos locales.

       EAFNOSUPPORT
              La  direccion pasada no tiene la familia de direcciones correcta
              en su campo sa_family.

       EACCES, EPERM
              El usuario ha intentado conectarse a una direccion  de  difusion
              (broadcast)  sin  que  el  conector  tenga  activa  la opcion de
              difusion, o la peticion de conexion  ha  fallado  debido  a  una
              regla del cortafuegos local.

CONFORME A

       SVr4,  4.4BSD (la funcion connect aparecio por primera vez en BSD 4.2).
       SVr4  documenta  adicionalmente  los   codigos   de   error   generales
       EADDRNOTAVAIL,  EINVAL,  EAFNOSUPPORT,  EALREADY,  EINTR,  EPROTOTYPE y
       ENOSR.  Tambien documenta muchas condiciones de error  adicionales  que
       no se describen aqui.

NOTA

       El  tercer  argumento de connect es en realidad un entero (y esto es lo
       que tienen BSD 4.*, libc4 y libc5).  Cierta confusion en POSIX dio como
       resultado  el  actual  socklen_t.   El estandar propuesto todavia no ha
       sido adoptado pero glibc2 ya lo sigue y tambien  tiene  socklen_t.  Vea
       tambien accept(2).

FALLOS (BUGS)

       Desconectar  un conector llamando a connect con una direccion AF_UNSPEC
       no se ha implementado todavia.

V'EASE TAMBI'EN

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