listen(2) System Calls Manual listen(2) BEZEICHNUNG listen - auf einem Socket auf Verbindungen warten BIBLIOTHEK Standard-C-Bibliothek (libc, -lc) UBERSICHT #include int listen(int sockdd, int Ruckstau); BESCHREIBUNG listen() markiert das Socket, das sockdd angibt, als ein passives Socket, das wie ein Socket benutzt wird, das eingehende Verbindungsanfragen unter Benutzung von accept(2) akzeptiert. Das Argument sockdd ist ein Dateideskriptor, der sich auf ein Socket des Typs SOCK_STREAM oder SOCK_SEQPACKET bezieht. Das Argument Ruckstau spezifiziert die maximale Lange der Warteschlange fur sockdd, die noch nicht angenommene Verbindungen aufnimmt. Wenn eine Verbindungsanfrage eintrifft und die Warteschlange bereits voll ist, dann erhalt der Client einen Fehler mit der Angabe ECONNREFUSED oder die Anfrage wird ignoriert, wenn das zugrundeliegende Protokoll >>erneutes Ubertragen<< unterstutzt, damit weitere Verbindungsversuche erfolgreich sind. RUCKGABEWERT Bei Erfolg wird Null zuruckgegeben. Bei einem Fehler wird -1 zuruckgegeben und errno gesetzt, um den Fehler anzuzeigen. FEHLER EADDRINUSE Ein anderes Socket wartet bereits auf dem gleichen Port auf Verbindungen. EADDRINUSE (Internet Domain Sockets) Das durch sockdd 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 fur kurzlebige Portnummern derzeit verwendet werden. Lesen Sie die Erorterung von /proc/sys/net/ipv4/ip_local_port_range in ip(7). EBADF Das Argument sockdd ist kein zulassiger Dateideskriptor. ENOTSOCK Der Dateideskriptor sockdd zeigt nicht auf ein Socket. EOPNOTSUPP Der Typ des Sockets unterstutzt die Operation listen() nicht. STANDARDS POSIX.1-2008. GESCHICHTE POSIX.1-2001, 4.4BSD (erschien zuerst in 4.2BSD). ANMERKUNGEN Um Verbindungen zu akzeptieren, werden die folgenden Schritte ausgefuhrt: (1) Es wird mittels socket(2) ein Socket erstellt. (2) Das Socket wird mittels bind(2) mit einer lokalen Adresse verknupft, so dass andere Sockets mittels connect(2) damit verbunden werden konnen. (3) Mit listen() werden eine Bereitschaft ankommende Verbindungen anzunehmen und eine Warteschlangenbeschrankung fur eingehende Verbindungen angegeben. (4) Verbindungen werden mit accept(2) akzeptiert. Das Verhalten des Arguments Ruckstau auf TCP-Sockets anderte sich mit Linux 2.2. Nun gibt es die Lange der Warteschlange fur komplett etablierte Sockets an, die darauf warten akzeptiert zu werden, anstatt der Anzahl der unvollstandigen Verbindungsanfragen. Die maximale Lange der Warteschlange fur unvollstandige Sockets kann in /proc/sys/net/ipv4/tcp_max_syn_backlog gesetzt werden. Wenn dort SYN-Cookies eingeschaltet sind, gibt es keine maximale Lange und diese Einstellung wird ignoriert. Lesen Sie tcp(7), um weitere Informationen zu erhalten. Falls das Argument Ruckstau grosser als der Wert in /proc/sys/net/core/somaxconn ist, dann wird es stillschweigend auf diesen Wert nach oben begrenzt. Seit Linux 5.4 ist der Standardwert in dieser Datei 4096; in alteren Kerneln ist der Wert 128. Vor Linux 2.4.25 war diese Beschrankung ein hart kodierter Wert SOMAXCONN von 128. BEISPIELE Siehe bind(2). SIEHE AUCH accept(2), bind(2), connect(2), socket(2), socket(7) UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Martin Schulze und Chris Leick erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer . Linux man-pages 6.06 31. Oktober 2023 listen(2)