listen(2)

JMÉNO
listen - čekej na spojení na soketu

KNIHOVNA
Standardní knihovna C (libc, -lc)

POUŽITÍ
#include <sys/socket.h>

int listen(int sockfd, int backlog);

POPIS
Funkce listen() označí soket specifikovaný parametrem sockfd jako pasivní, to znamená, že soket bude použit pro přijetí požadavků příchozích spojení pomocí funkce accept(2).

Parametr sockfd je file deskriptor, který popisuje soket, který je typu SOCK_STREAM nebo SOCK_SEQPACKET.

Parametr backlog specifikuje maximální délku, do které fronta čekajících požadavků na spojení prostřednictvím sockfd může dorůst. Je-li fronta zaplněna, obdrží klient zprávu ECONNREFUSED nebo pokud to nižší vrstva podporuje znovuzaslání, požadavek může být ignorován a pozdější pokus o spojení uspěje.

NÁVRATOVÉ HODNOTY
V případě úspěchu je vrácena 0. V případě chyby je vrácena 1 a errno je nastaven aby indikoval chybu.

CHYBOVÉ STAVY

EADDRINUSE
    Jiný soket už naslouchá na daném portu.

EADDRINUSE
    (Internet domain sockets) The socket referred to by sockfd had not previously been bound to an address and, upon attempting to bind it to an ephemeral port, it was determined that all port numbers in the ephemeral port range are currently in use. See the discussion of /proc/sys/net/ipv4/ip_local_port_range in ip(7).

EBADF
    Argument sockfd není platným deskriptorem.

ENOTSOCK
    The file descriptor sockfd does not refer to a socket.

EOPNOTSUPP
    Typ soketu není podporován voláním listen.

STANDARDY
POSIX.1-2024.

HISTORIE
4.2BSD, POSIX.1-2001.

POZNÁMKY
K přijetí spojení jsou provedeny tyto kroky:

    (1) Je vytvořen soket pomocí socket(2).

    (2) Soket je navázán na lokální adresu pomocí bind(2), takže další sokety na něj mohou být napojeny pomocí connect(2).

    (3) Ochota k přijetí příchozího spojení a limit pro délku fronty jsou specifikovány pomocí listen().

    (4) Spojení je přijato pomocí accept(2).

The behavior of the backlog argument on TCP sockets changed with Linux 2.2. Now it specifies the queue length for completely established sockets waiting to be accepted, instead of the number of incomplete connection requests. The maximum length of the queue for incomplete sockets can be set using /proc/sys/net/ipv4/tcp_max_syn_backlog. When syncookies are enabled there is no logical maximum length and this setting is ignored. See tcp(7) for more information.

If the backlog argument is greater than the value in /proc/sys/net/core/somaxconn, then it is silently capped to that value. Since Linux 5.4, the default in this file is 4096; in earlier kernels, the default value is 128. Before Linux 2.4.25, this limit was a hard coded value, SOMAXCONN, with the value 128.

PŘÍKLADY
Viz bind(2).

DALŠÍ INFORMACE
accept(2), bind(2), connect(2), socket(2), socket(7)

PŘEKLAD
Překlad této příručky do češtiny vytvořili Pavel Heimlich <tropikhajma@gmail.com>

Tento překlad je bezplatná dokumentace; Přečtěte si GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) nebo novější ohledně podmínek autorských práv. Neexistuje ŽÁDNÁ ODPOVĚDNOST.

Pokud narazíte na nějaké chyby v překladu této příručky, pošlete e-mail na adresu translation-team-cs@lists.sourceforge.net.