table of contents
listen(2) | System Calls Manual | 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¶
On success, zero is returned. On error, -1 is returned, and errno is set to indicate the error.
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-2008.
HISTORIE¶
POSIX.1-2001, 4.4BSD (first appeared in 4.2BSD).
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¶
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 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.
2. května 2024 | Linux man-pages (unreleased) |