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