LISTEN(2) Linux - příručka programátora LISTEN(2)

listen - čekej na spojení na soketu

#include <sys/socket.h>
int listen(int sockfd, int backlog);

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.

On success, zero is returned. On error, -1 is returned, and errno is set to indicate the error.

Jiný soket už naslouchá na daném portu.
(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).
Argument sockfd není platným deskriptorem.
The file descriptor sockfd does not refer to a socket.
Typ soketu není podporován voláním listen.

POSIX.1-2001, POSIX.1-2008, 4.4BSD. listen() se poprvé objevilo v 4.2BSD.

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. In kernels before 2.4.25, this limit was a hard coded value, SOMAXCONN, with the value 128.

Viz bind(2).

accept(2), bind(2), connect(2), socket(2), socket(7)

Tato stránka je součástí projektu Linux man-pages v5.13. Popis projektu a informace o hlášení chyb najdete na https://www.kernel.org/doc/man-pages/.

Překlad této příručky do španělš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 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.

22. března 2021 Linux