Provided by: manpages-fr-dev_3.27fr1.4-1_all bug

NOM

       connect - Debuter une connexion sur une socket

SYNOPSIS

       #include <sys/types.h>          /* Consultez NOTES */
       #include <sys/socket.h>

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

DESCRIPTION

       L'appel systeme connect() connecte la socket associee au descripteur de
       fichier sockfd  a  l'adresse  indiquee  par  addr.  L'argument  addrlen
       indique  la  taille  de addr. Le format de l'adresse addr est determine
       par la famille de la socket sockfd ; consultez socket(2) pour  plus  de
       details.

       Si  la  socket  sockfd  est  du  type  SOCK_DGRAM,  alors serv_addr est
       l'adresse a laquelle les datagrammes seront envoyes par defaut,  et  la
       seule  adresse  depuis  laquelle  ils seront recus. Si la socket est du
       type  SOCK_STREAM  ou  SOCK_SEQPACKET,  cette  fonction  tente  de   se
       connecter  a une autre socket. L'adresse de l'autre socket est indiquee
       par serv_addr, qui doit etre une adresse (de longueur addrlen) dans  le
       meme  domaine que la socket. Chaque domaine de communication interprete
       le parametre addr a sa maniere.

       En  general,  les  sockets  des  protocoles   orientes   connexion   ne
       reussissent  un  appel connect() qu'une seule fois, alors qu'une socket
       d'un protocole sans connexion peut  appeler  connect()  plusieurs  fois
       pour   changer   son   affectation.  Une  socket  sans  connexion  peut
       interrompre son affectation en se connectant sur une  adresse  avec  le
       membre  sa_family  de la structure sockaddr a la valeur AF_UNSPEC (gere
       par Linux depuis le noyau 2.2).

VALEUR RENVOY'EE

       connect() renvoie 0 s'il reussit, ou -1 s'il echoue, auquel  cas  errno
       contient le code d'erreur.

ERREURS

       Voici  une liste d'erreurs generales concernant les sockets. Il peut en
       exister d'autres specifiques au domaine employe.

       EACCES Pour les sockets de domaine Unix qui sont specifiees par un  nom
              de chemin : la permission en ecriture est refusee sur le fichier
              socket, ou la permission de parcours est refusee pour  l'un  des
              repertoires    composant    le    chemin.    (Consultez    aussi
              path_resolution(7).)

       EACCES, EPERM
              L'utilisateur a tente de se connecter a  une  adresse  broadcast
              sans  avoir  active  l'attribut  broadcast,  ou  la  demande  de
              connexion a echoue a cause des regles d'un pare-feu local.

       EADDRINUSE
              L'adresse locale est deja utilisee.

       EAFNOSUPPORT
              L'adresse transmise n'a pas  la  bonne  valeur  dans  son  champ
              sa_family.

       EAGAIN Pas  de  port  local  disponible, ou pas assez de place dans les
              tables de routage. Pour AF_INET,  consultez  la  description  de
              /proc/sys/net/ipv4/ip_local_port_range   dans   ip(7)  pour  les
              informations indiquant comment  augmenter  le  nombre  de  ports
              locaux.

       EALREADY
              La  socket  est  non  bloquante  et  une  tentative de connexion
              precedente ne s'est pas encore terminee.

       EBADF  Mauvais descripteur.

       ECONNREFUSED
              La connexion est refusee par le serveur.

       EFAULT La structure d'adresse pointe en dehors de l'espace d'adressage.

       EINPROGRESS
              La socket est non bloquante, et la connexion ne  peut  pas  etre
              etablie   immediatement.   Il   est  alors  possible  d'utiliser
              select(2) ou poll(2) pour attendre que la socket soit disponible
              en  ecriture.  Une  fois  que  select(2) confirme la possibilite
              d'ecrire, utilisez getsockopt(2) pour lire l'option SO_ERROR  du
              niveau  SOL_SOCKET et determiner si connect() s'est termine avec
              succes (SO_ERROR vaut zero) ou en echec (SO_ERROR contient  l'un
              des codes d'erreurs listes ici, indiquant le probleme).

       EINTR  L'appel systeme a ete interrompu par l'arrivee d'un signal avant
              qu'une connexion valide ne survienne ; consultez signal(7).

       EISCONN
              La socket est deja connectee.

       ENETUNREACH
              Le reseau est inaccessible.

       ENOTSOCK
              Le descripteur ne correspond pas a une socket.

       ETIMEDOUT
              Depassement du delai maximum pendant la  connexion.  Le  serveur
              peut  etre  trop  charge  pour  accepter une nouvelle connexion.
              Remarquez que pour les sockets IP, le delai peut etre tres  long
              si les syncookies sont actives sur le serveur.

CONFORMIT'E

       SVr4,  BSD 4.4  (la  fonction  connect()  est  apparue  dans  BSD 4.2),
       POSIX.1-2001.

NOTES

       POSIX.1-2001 ne requiert pas l'inclusion de <sys/types.h>, et  cet  en-
       tete  n'est  pas  necessaire sous Linux. Cependant, il doit etre inclus
       sous certaines implementations historiques (BSD), et  les  applications
       portables devraient probablement l'utiliser.

       Le  troisieme  argument  de  connect()  est en fait un int (et c'est ce
       qu'utilisent BSD 4.x, libc4 et libc5). Une certaine confusion  POSIX  a
       donne le << socklen_t >> actuel, egalement utilise par glibc. Pour plus
       de details, consultez accept(2).

EXEMPLE

       getaddrinfo(3) contient un exemple d'utilisation de connect().

VOIR AUSSI

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

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.27 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       etre       trouvees      a      l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis 2010, cette traduction est maintenue a l'aide  de  l'outil  po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'equipe   de   traduction
       francophone       au       sein        du        projet        perkamon
       <URL:http://perkamon.alioth.debian.org/>.

       Christophe  Blaess  <URL:http://www.blaess.fr/christophe/> (1996-2003),
       Alain  Portal  <URL:http://manpagesfr.free.fr/>  (2003-2006).    Julien
       Cristau et l'equipe francophone de traduction de Debian (2006-2009).

       Veuillez   signaler   toute   erreur   de   traduction  en  ecrivant  a
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous  pouvez  toujours avoir acces a la version anglaise de ce document
       en utilisant la commande << man -L C <section> <page_de_man> >>.

Linux                           3 decembre 2008                     CONNECT(2)