Provided by: manpages-de-dev_2.5-1_all 

BEZEICHNUNG
listen - auf einem Socket auf Verbindungen warten
ÜBERSICHT
#include <sys/types.h> /* Siehe ANMERKUNGEN */
#include <sys/socket.h>
int listen(int sockfd, int backlog);
BESCHREIBUNG
listen() markiert das Socket, das sockfd angibt, als ein passives Socket, das wie ein Socket benutzt
wird, das eingehende Verbindungsanfragen unter Benutzung von accept(2) akzeptiert.
Das Argument sockfd ist ein Dateideskriptor, der sich auf ein Socket des Typs SOCK_STREAM oder
SOCK_SEQPACKET bezieht.
Das Argument backlog spezifiziert die maximale Länge der Warteschlange für sockfd, die noch nicht
angenommene Verbindungen aufnimmt. Wenn eine Verbindungsanfrage eintrifft und die Warteschlange bereits
voll ist, dann erhält der Client einen Fehler mit der Angabe ECONNREFUSED oder die Anfrage wird
ignoriert, wenn das zugrundeliegende Protokoll »erneutes Übertragen« unterstützt, damit weitere
Verbindungsversuche erfolgreich sind.
RÜCKGABEWERT
Bei Erfolg wird Null zurückgegeben. Bei einem Fehler wird -1 zurückgegeben und errno entsprechend
gesetzt.
FEHLER
EADDRINUSE
Ein anderes Socket wartet bereits auf dem gleichen Port auf Verbindungen.
EADDRINUSE
(Internet Domain Sockets) Das durch sockfd referenzierte Socket war bisher nicht an eine Adresse
gebunden und beim Versuch, es an einen kurzlebigen Port zu binden, wurde festgestellt, dass alle
Portnummern in dem Portbereich für kurzlebige Portnummern derzeit verwendet werden. Lesen Sie die
Erörterung von /proc/sys/net/ipv4/ip_local_port_range in ip(7).
EBADF Das Argument sockfd ist kein zulässiger Dateideskriptor.
ENOTSOCK
Der Dateideskriptor sockfd zeigt nicht auf ein Socket.
EOPNOTSUPP
Der Typ des Sockets unterstützt die Operation listen() nicht.
KONFORM ZU
POSIX.1-2001, POSIX.1-2008, 4.4BSD (listen() erschien erstmals in 4.2BSD.)
ANMERKUNGEN
Um Verbindungen zu akzeptieren, werden die folgenden Schritte ausgeführt:
1. Es wird mittels socket(2) ein Socket erstellt.
2. Das Socket wird mittels bind(2) mit einer lokalen Adresse verknüpft, so dass andere Sockets
mittels connect(2) damit verbunden werden können.
3. Mit listen() werden eine Bereitschaft ankommende Verbindungen anzunehmen und eine
Warteschlangenbeschränkung für eingehende Verbindungen angegeben.
4. Verbindungen werden mit accept(2) akzeptiert.
POSIX.1 erfordert nicht, dass <sys/types.h> eingebunden wird. Diese Header-Datei ist in Linux nicht
erforderlich. Allerdings benötigen einige historische Implementierungen (BSD) diese Header-Datei. Es wird
empfohlen, sie für portierbare Anwendungen einzubinden.
Das Verhalten des Arguments backlog auf TCP-Sockets änderte sich mit Linux 2.2. Nun gibt es die Länge der
Warteschlange für komplett etablierte Sockets an, die darauf warten akzeptiert zu werden, anstatt der
Anzahl der unvollständigen Verbindungsanfragen. Die maximale Länge der Warteschlange für unvollständige
Sockets kann in /proc/sys/net/ipv4/tcp_max_syn_backlog gesetzt werden. Wenn dort SYN-Cookies
eingeschaltet sind, gibt es keine maximale Länge und diese Einstellung wird ignoriert. Lesen Sie tcp(7),
um weitere Informationen zu erhalten.
Falls das Argument backlog größer ist, als der Wert in /proc/sys/net/core/somaxconn, dann wird es
stillschweigend auf diesen Wert heruntergesetzt; der Standardwert in dieser Datei ist 128. In Kerneln vor
2.4.25 war diese Beschränkung ein hart kodierter Wert SOMAXCONN von 128.
BEISPIEL
Siehe bind(2).
SIEHE AUCH
accept(2), bind(2), connect(2), socket(2), socket(7)
KOLOPHON
Diese Seite ist Teil der Veröffentlichung 4.15 des Projekts Linux-man-pages. Eine Beschreibung des
Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden
sich unter https://www.kernel.org/doc/man-pages/.
ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Schulze <joey@infodrom.org> und Chris
Leick <c.leick@vollbio.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer
bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an
<debian-l10n-german@lists.debian.org>.
Linux 15. September 2017 LISTEN(2)