Contact
Impressum
Why this name?
pdf

LISTEN

JMÉNO

listen − čekej na spojení na soketu

SYNTAXE

#include <sys/types.h> /*viz POZNÁMKY*/ #include <sys/socket.h>

int listen(int sockfd, int backlog);

POPIS

UPOZORNĚNÍ: Projekt českých manuálových stránek není nadále udržován. Tato manuálová stránka je zastaralá a informace zde uvedené mohou být neaktuální. Aktuální informace naleznete v nápovědě příkazu nebo anglické verzi manuálových stránek.

Funkce listen(2) 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 ECONNREFUSEDnebopokudtonižšívrstvapodporujeznovuzaslání, požadavek může být ignorován a pozdější pokus o spojení uspěje.

NÁVRATOVÁ HODNOTA

V případě úspěchu je vrácena nula, jinak -1 a je příslušně nastavena proměnná errno

CHYBY

EADDRINUSE

Jiný soket už naslouchá na daném portu. EBADF Argument sockfd není platným deskriptorem.

ENOTSOCK

Argument ssockfd není deskriptorem soketu.

EOPNOTSUPP

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

SPLŇUJE STANDARDY

4.4BSD, POSIX.1-2001. Volání listen se poprvé objevilo v 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).

POSIX.1-2001 nevyžaduje vložení <sys/types.h> a tento hlavičkový soubor není vyžadován ani v Linuxu. Nicméně některé starší (BSD) implementace vyžadují tento soubor a proto by měl být vložen do přenositelných aplikací.

Chování argumentu backlog na TCP soketech se změnilo v Linuxu 2.2. Nyní specifikuje délku fronty pro kompletně zařízený soket čekající na přijetí, místo počtu nekompletních požadavků na spojení. Maximální délka fronty nekompletního soketu může být nastavena pomocí tcp_max_syn_backlog sysctl. Pokud jsou syncookies povoleny není logicky žádná maximální délka a toto sysctl nastavení je ignorováno. Viz tcp(7) pro více informací.

Pokud je backlog argument větší než hodnota v /proc/sys/ net/core/somaxconn, pak je tiše oříznuta na tuto hodnotu. implicitní hodnota je 128. V jádrech starších než 2.4.25 bylo tato hodnota pevně stanovena na 128.

PŘÍKLAD

Viz bind(2).

DALŠÍ INFORMACE

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

TIRÁŽ

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

pdf
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

No Banana Union - No Software Patents