LISTEN(2)

BEZEICHNUNG
listen - Horche auf einem Socket auf Verbindungen

ÜBERSICHT
#include <sys/socket.h>

int listen(int s, int backlog);

BESCHREIBUNG
Um eine Verbindung anzunehmen, muß ein Socket zuerst mit socket(2) erzeugt werden. Der Wunsch, eingehende Verbindungen anzunehmen sowie ein Limit an nicht bearbeiteten Verbindungen, die in einer Warteschleife gehalten werden, wird mit listen() angezeigt. Anschließend werden Verbindungen mit accept(2) angenommen. Der Aufruf von listen ist für Sockets vom Typ SOCK_STREAM und SOCK_SEQPACKET gültig. Das Argument backlog spezifiziert die maximale Länge der Warteschlange, die noch nicht angenommene Verbindungen aufnimmt. Wenn eine Verbindungsanfrage ankommt und die Warteschlange ist bereits voll, dann erhält der Client einen Fehler mit der Angabe ECONNREFUSED oder die Anfrage wird ignoriert, wenn das zugrundeliegende Protokoll "Retransmission" unterstützt, damit weitere Versuche erfolgreich sind.

RÜCKGABEWERT
Bei Erfolg wird null zurückgegeben, bei einem Fehler -1 und errno wird entsprechend gesetzt.

FEHLER

EBADF
    Das Argument s ist kein gültiger Deskriptor.

ENOTSOCK
    Das Argument s ist kein Socket.

EOPNOTSUPP
    Der Socket ist nicht von einem Typ, der die Operation listen unterstützt.

GESCHICHTE
Die Funktion listen tauchte in BSD 4.2 auf.

BUGS
Wenn der Socket vom Typ af_inet ist und das Argument backlog größer als 128 ist, wird es stillschweigend auf 128 gekürzt. Um portable Anwendungen zu schreiben, sollte nicht auf solche Werte vertraut werden, denn BSD (und wenigstens einige BSD-basierte Systeme) limitieren backlog auf 5 Verbindungen.

SIEHE AUCH
accept(2), connect(2), socket(2).