listen(2) System Calls Manual listen(2) NUME listen - asculta pentru conexiuni pe un soclu BIBLIOTECA Biblioteca C standard (libc, -lc) REZUMAT #include int listen(int sockfd, int backlog); DESCRIERE listen() marcheaza soclul la care face referire sockfd ca fiind un soclu pasiv, adica un soclu care va fi utilizat pentru a accepta cereri de conexiune primite utilizand accept(2). Argumentul sockfd este un descriptor de fiier care se refera la un soclu de tip SOCK_STREAM sau SOCK_SEQPACKET. Argumentul backlog definete lungimea maxima pana la care poate crete coada de conexiuni in ateptare pentru sockfd. In cazul in care o cerere de conexiune sosete cand coada este plina, clientul poate primi o eroare cu indicaia ECONNREFUSED sau, daca protocolul de baza accepta retransmiterea, cererea poate fi ignorata, astfel incat o noua incercare ulterioara de conectare sa reueasca. VALOAREA RETURNATA In caz de succes, se returneaza zero. In caz de eroare, se returneaza -1, iar errno este configurata pentru a indica eroarea. ERORI-IEIRE EADDRINUSE Un alt soclu este deja ascultat pe acelai port. EADDRINUSE (Soclurile din domeniul de Internet) Soclul la care se face referire prin sockfd nu a fost asociat anterior unei adrese i, la incercarea de a-l asocia la un port efemer, s-a stabilit ca toate numerele de port din intervalul de porturi efemere sunt utilizate in prezent. A se vedea discuia despre /proc/sys/net/ipv4/ip_local_port_range in ip(7). EBADF Argumentul sockfd nu este un descriptor de fiier valid. ENOTSOCK Descriptorul de fiier sockfd nu se refera la un soclu. EOPNOTSUPP Soclul nu este de un tip care sa accepte operaia listen(). STANDARDE POSIX.1-2008. ISTORIC POSIX.1-2001, 4.4BSD (a aparut pentru prima data in 4.2BSD). NOTE Pentru a accepta conexiuni, se executa urmatorii pai: (1) Un soclu este creat cu socket(2). (2) Soclul este legat la o adresa locala folosind bind(2), astfel incat alte socluri sa poata fi conectate la el prin connect(2). (3) Cu listen() se specifica disponibilitatea de a accepta conexiuni primite i o limita a cozii de ateptare pentru conexiunile primite. (4) Conexiunile sunt acceptate cu accept(2). Comportamentul argumentului backlog pe socket-urile TCP s-a schimbat odata cu Linux 2.2. Acum, acesta specifica lungimea cozii de ateptare pentru soclurile complet stabilite care ateapta sa fie acceptate, in loc de numarul de cereri de conexiune incomplete. Lungimea maxima a cozii de ateptare pentru socluri incomplete poate fi stabilita cu /proc/sys/net/ipv4/tcp_max_syn_backlog. Atunci cand sunt activate ,,syncookies", nu exista o lungime maxima logica i aceasta valoare este ignorata. Pentru mai multe informaii, consultai tcp(7). In cazul in care argumentul backlog este mai mare decat valoarea din /proc/sys/net/core/somaxconn, atunci acesta este limitat in mod silenios la aceasta valoare. Incepand cu Linux 5.4, valoarea implicita din acest fiier este 4096; in nucleele anterioare, valoarea implicita este 128. Inainte de Linux 2.4.25, aceasta limita era o valoare codificata in mod rigid, SOMAXCONN, cu valoarea 128. EXEMPLE A se vedea bind(2). CONSULTAI I accept(2), bind(2), connect(2), socket(2), socket(7) TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.06 31 octombrie 2023 listen(2)