listen

LISTEN(2)                 Manuel du programmeur Linux                LISTEN(2)



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
       S'il réussit, cet appel système renvoie 0. S'il échoue, il renvoie
       -1 et remplit errno en conséquence.

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 valable.

       ENOTSOCK
              Le paramètre 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. 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é à 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
       Consultez bind(2).

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

COLOPHON
       Cette page fait partie de la publication 3.70 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
       Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a
       <http://po4a.alioth.debian.org/> par l'équipe de traduction
       francophone au sein du projet perkamon
       <http://perkamon.alioth.debian.org/>.

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

       Veuillez signaler toute erreur de traduction en écrivant Ã
       <perkamon-fr@traduc.org>.

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



Linux                             10 mai 2014                        LISTEN(2)