listen

Autres langues

Langue: fr

Version: 23 juillet 1993 (mandriva - 01/05/08)

Autres sections - même nom

Section: 2 (Appels système)

NOM

listen - Attendre des connexions sur une socket

SYNOPSIS

#include <sys/socket.h>

int listen(int sockfd, int backlog);

DESCRIPTION

Pour accepter des connexions, une socket est d'abord créée avec socket(2), puis le désir d'accepter des connexions entrantes, et la limite de la file d'entrée sont indiqués avec listen(), ensuite les connexions seront acceptées avec accept(2). L'appel système listen() s'applique seulement aux sockets de type SOCK_STREAM ou SOCK_SEQPACKET.

Le paramètre backlog définit une longueur maximale pour la file des connexions en attente. 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

listen() renvoie 0 si il réussit, ou -1 en cas d'échec, auquel cas 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 valide
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. L'appel système listen() est apparu dans BSD 4.2.

NOTES

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 l'appel sysctl tcp_max_syn_backlog. Lorsque les syncookies sont activés, il n'y a pas de longueur maximale et la configuration sysctl est ignorée. Voir tcp(7) pour plus de détails.

Si l'argument backlog est supérieur à la valeur dans /proc/sys/net/somaxconn, il est silencieusement ramené à cette valeur ; la valeur par défaut dans ce fichier est 128. Dans les noyaux précédant le 2.4.25, cette limite était codée en dur, SO_MAXCONN, qui valait 128.

EXEMPLE

Voir bind(2).

VOIR AUSSI

accept(2), bind(2), connect(2), socket(2)

TRADUCTION

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 11 octobre 1996 et révisée le 27 novembre 2007.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 2 listen ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.