Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

listen() - Socket auf anstehende Verbindungen überprüfen

&pagelevel(4)&pagelevel

#include <sys/socket.h>

int listen(int s, int backlog);


Beschreibung

Die Funktion listen() veranlasst, dass der Socket s für die Annahme von Verbindungsanforderungen zugelassen wird. Zu diesem Zweck richtet listen() für den Socket s eine Warteschlange für eingehende Verbindungsanforderungen ein. Der Parameter backlog gibt an, wie viele Verbindungsanforderungen die Warteschlange maximal aufnehmen kann. Der Wert für backlog ist auf maximal 50 begrenzt.

Die Funktion listen() kann nur für Sockets vom Typ SOCK_STREAM aufgerufen werden.

Damit ein Prozess über einen Socket mit dem Partner kommunizieren kann, der Verbindungsanforderungen schickt, sind folgende Schritte erforderlich:

  1. Einen Socket erzeugen und binden mit socket() und bind().

  2. Mit listen() für den Socket eine Warteschlange für eingehende Verbindungsanforderungen einrichten.

  3. Verbindungsanforderungen mit accept() annehmen.

Wenn eine Verbindungsanforderung bei voller Warteschlange ankommt, erhält der Socket, der die Verbindungsanforderung geschickt hat, die Fehlermeldung ECONNREFUSED oder ETIMEDOUT.

Returnwert

0:

Bei Erfolg.

-1:

Bei Fehler. errno wird gesetzt, um den Fehler anzuzeigen.

Fehler

EBADF

Der Parameter s ist kein gültiger Deskriptor.

ENOTSOCK

Der Deskriptor s referenziert eine Datei, keinen Socket.

EOPNOTSUPP

Der Socket-Typ wird von listen() nicht unterstützt.

Siehe auch

accept(), connect(), socket()