sourCEntral - mobile manpages

pdf

LISTEN

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.

EBADF

Das Argument sockfd ist kein zulässiger Deskriptor.

ENOTSOCK

Das Argument sockfd ist kein Socket.

EOPNOTSUPP

Der Typ des Sockets unterstützt die Operation listen() nicht.

KONFORM ZU

4.4BSD, POSIX.1−2001. Der Funktionsaufruf 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−2001 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 3.52 des Projekts Linux−man−pages. Eine Beschreibung des Projekts und Informationen, wie Fehler gemeldet werden können, finden sich unter http://www.kernel.org/doc/man−pages/.

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Schulze <joey AT infodrom DOT org> und Chris Leick <c DOT leick AT vollbio DOT 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 AT lists DOT debian DOT org>.

pdf