Scroll to navigation

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 DE RETOUR

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
The argument sockfd is not a valid file descriptor.
ENOTSOCK
The file descriptor sockfd does not refer to a socket.
EOPNOTSUPP
Le type de socket ne supporte pas l'appel système listen().

CONFORMITÉ

POSIX.1-2001, POSIX.1-2008, 4.4BSD (listen() first appeared in 4.2BSD).

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 does not require the inclusion of <sys/types.h>, and this header file is not required on Linux. However, some historical (BSD) implementations required this header file, and portable applications are probably wise to include it.

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.

If the backlog argument is greater than the value in /proc/sys/net/core/somaxconn, then it is silently truncated to that value. Since Linux 5.4, the default in this file is 4096; in earlier kernels, the default value is 128. In kernels before 2.4.25, this limit was a hard coded value, SOMAXCONN, with the value 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 5.05 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies 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 <http://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> et Frédéric Hantrais <fhantrais@gmail.com>

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

9 février 2020 Linux