Provided by: manpages-fr-dev_4.13-4_all bug

NOM

       listen - Attendre des connexions sur une socket

SYNOPSIS

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

       int listen(int sockfd, int backlog);

DESCRIPTION

       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 succès, zéro est renvoyé. En cas d'erreur, -1 est renvoyé et errno reçoit une valeur adéquate.

ERREURS

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

       EADDRINUSE
              (Sockets  Internet)  La  socket  indiquée par sockfd n'a pas encore été attachée a une adresse, et
              lors d'une tentative d'attachement  à  un  port  éphémère,  aucun  port  n'était  disponible  dans
              l'intervalle     des     ports     éphémères.     Consultez     les     explications    concernant
              /proc/sys/net/ipv4/ip_local_port_range dans ip(7).

       EBADF  sockfd n'est pas un descripteur de fichier valable.

       ENOTSOCK
              Le descripteur de fichier sockfd ne fait pas référence à un socket.

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

CONFORMITÉ

       POSIX.1-2001, POSIX.1-2008, BSD 4.4 (listen() est apparu 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. Consultez tcp(7) pour plus de
       détails.

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

EXEMPLES

       Consultez bind(2).

VOIR AUSSI

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

COLOPHON

       Cette page fait partie de la publication 5.10 du projet man-pages Linux. Une description du projet et des
       instructions pour signaler des anomalies et la dernière version de cette page  peuvent  être  trouvées  à
       l'adresse https://www.kernel.org/doc/man-pages/.

TRADUCTION

       La   traduction   française   de   cette   page   de   manuel   a   été   créée   par  Christophe  Blaess
       <https://www.blaess.fr/christophe/>,   Stéphan   Rafin   <stephan.rafin@laposte.net>,   Thierry   Vignaud
       <tvignaud@mandriva.com>,  François  Micaux,  Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard
       <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)   <jean-luc.coulon@wanadoo.fr>,   Julien   Cristau
       <jcristau@debian.org>,      Thomas      Huriaux      <thomas.huriaux@gmail.com>,     Nicolas     François
       <nicolas.francois@centraliens.net>,    Florentin    Duneau    <fduneau@gmail.com>,     Simon     Paillard
       <simon.paillard@resel.enst-bretagne.fr>,     Denis    Barbier    <barbier@debian.org>,    David    Prévot
       <david@tilapin.org>,    Cédric    Boutillier     <cedric.boutillier@gmail.com>,     Frédéric     Hantrais
       <fhantrais@gmail.com> et Jean-Philippe MENGUAL <jpmengual@debian.org>

       Cette  traduction  est  une  documentation libre ; veuillez vous reporter à la GNU General Public License
       version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel,  veuillez  envoyer  un  message  à
       debian-l10n-french@lists.debian.org.

Linux                                              9 juin 2020                                         LISTEN(2)