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  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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 ⟨⟩.