listen
Table des matières
Retour à l'index
NOM
listen - Attendre des connexions sur un socket
BIBLIOTHÈQUE
Bibliothèque C standard (libc, -lc)
SYNOPSIS
#include <sys/socket.h>
int listen(int sockfd, int backlog);
DESCRIPTION
listen() marque le socket référencé par sockfd comme un socket passif,
c'est-à-dire comme un socket qui sera utilisé 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 à un
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 est définie pour préciser l'erreur.
ERREURS
- EADDRINUSE
-
Un autre socket est déjà à l'écoute sur le même port.
- EADDRINUSE
-
(Sockets Internet) Le socket indiqué par sockfd n'a pas encore été
attaché 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().
STANDARDS
POSIX.1-2008.
HISTORIQUE
POSIX.1-2001, 4.4BSD (apparu dans 4.2BSD).
NOTES
Pour accepter des connexions, les étapes suivantes sont effectuées :
-
- (1)
-
Un socket est créé avec socket(2).
- (2)
-
Le socket est limité à une adresse locale avec bind(2), ainsi d'autres
sockets peuvent y être connect(2)és.
- (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).
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
sockets totalement établis 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 bloqué 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. Avant linux 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)
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 à
Index
- NOM
-
- BIBLIOTHÈQUE
-
- SYNOPSIS
-
- DESCRIPTION
-
- VALEUR RENVOYÉE
-
- ERREURS
-
- STANDARDS
-
- HISTORIQUE
-
- NOTES
-
- EXEMPLES
-
- VOIR AUSSI
-
- TRADUCTION
-
This document was created by
man2html,
using the manual pages.
Time: 05:06:03 GMT, September 19, 2025