|
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:
Einen Socket erzeugen und binden mit socket() und bind().
Mit listen() für den Socket eine Warteschlange für eingehende Verbindungsanforderungen einrichten.
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.