Available in

(1) (2) (3) (7) (2)/cs (2)/de (2)/es (2)/fr (2)/ja (2)/ko (2)/ru (2)/zh_cn (7)/zh_cn (2)/zh_tw (7)/zh_tw

Contents

BEZEICHNUNG

listen − Horche auf einem Socket auf Verbindungen

ÜBERSICHT

#include <sys/socket.h>

int listen(int s, int backlog);

BESCHREIBUNG

Um eine Verbindung anzunehmen, muss 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).

COMMENTS

blog comments powered by Disqus