Loading

NOM

       listen - Attendre des connexions sur une socket

SYNOPSIS

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

       int listen(int sockfd, int backlog);

       listen()  marque  la  socket  référencée  par  sockfd  comme une socket
       passive, c’est-à-dire comme une socket qui sera utilisée pour  accepter
       les demandes de connexions entrantes en utilisant accept(2).

       Le  paramètre sockfd est un descripteur de fichier qui fait référence à
       une socket de type SOCK_STREAM ou SOCK_SEQPACKET.

       Le paramètre backlog définit une longueur maximale  pour  la  file  des
       connexions  en  attente  pour  sockfd. Si une nouvelle connexion arrive
       alors que la file est pleine, le client  reçoit  une  erreur  indiquant
       ECONNREFUSED,   ou,   si   le   protocole   sous‐jacent   supporte  les
       retransmissions, la requête peut être ignorée afin qu’un  nouvel  essai
       réussisse.

VALEUR RENVOYÉE

       En  cas  de  réussite,  zéro est renvoyé, sinon -1 est renvoyé et errno
       contient le code d’erreur.

ERREURS

       EADDRINUSE
              Une autre socket est déjà à l’écoute sur le même port.

       EBADF  sockfd n’est pas un descripteur valable.

       ENOTSOCK
              L’argument sockfd n’est pas une socket.

       EOPNOTSUPP
              Le type de socket ne supporte pas l’appel système listen().

CONFORMITÉ

       BSD 4.4, POSIX.1-2001. La fonction listen() est apparue dans BSD 4.2.

NOTES

       Pour accepter des connexions, les étapes suivantes sont effectuées :

           1.  Une socket est créée avec socket(2).

           2.  La socket est limitée à une adresse locale avec bind(2),  ainsi
               d’autres sockets peuvent y être connect(2)ées.

           3.  La volonté d’accepter des connexions entrantes et une limite de
               file  pour  les  connexions  entrantes  sont  spécifiées   avec
               listen().

           4.  Les connexions sont acceptées avec accept(2).

       POSIX.1-2001  ne  requiert  pas  l’inclusion  de  <sys/types.h>, et cet
       en‐tête n’est pas nécessaire sous Linux. Cependant, il doit être inclus
       sous  certaines  implémentations historiques (BSD), et les applications
       portables devraient probablement l’utiliser.

       Le comportement de backlog a été modifié sur les sockets TCP dans Linux
       2.2.  Il  s’agit à présent de la longueur de la file d’attente pour les
       socket totalement établies en attente  d’acceptation,  plutôt  que  les
       requêtes  de  connexion  incomplètes.  La  longueur maximale de la file
       d’attente  des  connexions  incomplètes  peut  être   configurée   avec
       /proc/sys/net/ipv4/tcp_max_syn_backlog.  Lorsque  les  syncookies  sont
       activés, il n’y a pas de longueur  maximale  et  la  configuration  est
       ignorée. Voir tcp(7) pour plus de détail.

       Si  l’argument  backlog  est  plus grand que la valeur indiquée dans le
       fichier /proc/sys/net/core/somaxconn, il est tronqué à  cette  valeur ;
       la valeur par défaut dans ce fichier est 128. Dans les noyaux précédant
       2.4.25, cette limite était  une  valeur  fixe,  SOMAXCONN,  qui  valait
       également 128.

EXEMPLE

       Voir bind(2).

VOIR AUSSI

       accept(2), bind(2), connect(2), socket(2), socket(7)

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.23 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       être       trouvées      à      l’adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Cette page de manuel a été traduite  et  mise  à  jour  par  Christophe
       Blaess  <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
       Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et  mise  à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement gérées par Julien Cristau <jcristau@debian.org> et l’équipe
       francophone de traduction de Debian.

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

       Vous  pouvez  toujours avoir accès à la version anglaise de ce document
       en utilisant la commande « man -L C <section> <page_de_man> ».