sourCEntral - mobile manpages

pdf

listen

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-2001, POSIX.1-2008, 4.4BSD (listen() est 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 DOT rafin AT laposte DOT net>, Thierry Vignaud <tvignaud AT mandriva DOT com>, François Micaux, Alain Portal <aportal AT univ-montp2 DOT fr>, Jean-Philippe Guérard <fevrier AT tigreraye DOT org>, Jean-Luc Coulon (f5ibh) <jean-luc DOT coulon AT wanadoo DOT fr>, Julien Cristau <jcristau AT debian DOT org>, Thomas Huriaux <thomas DOT huriaux AT gmail DOT com>, Nicolas François <nicolas DOT francois AT centraliens DOT net>, Florentin Duneau <fduneau AT gmail DOT com>, Simon Paillard <simon DOT paillard AT resel DOT enst-bretagne DOT fr>, Denis Barbier <barbier AT debian DOT org>, David Prévot <david AT tilapin DOT org>, Cédric Boutillier <cedric DOT boutillier AT gmail DOT com>, Frédéric Hantrais <fhantrais AT gmail DOT com> et Jean-Philippe MENGUAL <jpmengual AT debian DOT 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 à debian-l10n-french.

pdf