Provided by: manpages-ro-dev_4.21.0-2_all bug

NUME

       listen - ascultă pentru conexiuni pe un soclu

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

REZUMAT

       #include <sys/socket.h>

       int listen(int sockfd, int backlog);

DESCRIERE

       listen()  marchează  soclul la care face referire sockfd ca fiind un soclu pasiv, adică un
       soclu care va  fi  utilizat  pentru  a  accepta  cereri  de  conexiune  primite  utilizând
       accept(2).

       Argumentul  sockfd  este  un  descriptor  de  fișier  care  se  referă  la un soclu de tip
       SOCK_STREAM sau SOCK_SEQPACKET.

       Argumentul backlog definește lungimea maximă până la care poate crește coada de  conexiuni
       în  așteptare  pentru  sockfd.   În cazul în care o cerere de conexiune sosește când coada
       este plină, clientul poate primi o eroare cu indicația ECONNREFUSED sau,  dacă  protocolul
       de  bază  acceptă retransmiterea, cererea poate fi ignorată, astfel încât o nouă încercare
       ulterioară de conectare să reușească.

VALOAREA RETURNATĂ

       În caz de succes, se returnează zero.  În caz de eroare, se returnează -1, iar errno  este
       configurată pentru a indica eroarea.

ERORI

       EADDRINUSE
              Un alt soclu este deja ascultat pe același port.

       EADDRINUSE
              (Soclurile din domeniul de Internet) Soclul la care se face referire prin sockfd nu
              a fost asociat anterior unei adrese și, la încercarea de  a-l  asocia  la  un  port
              efemer,  s-a  stabilit  că toate numerele de port din intervalul de porturi efemere
              sunt    utilizate    în    prezent.      A     se     vedea     discuția     despre
              /proc/sys/net/ipv4/ip_local_port_range în ip(7).

       EBADF  Argumentul sockfd nu este un descriptor de fișier valid.

       ENOTSOCK
              Descriptorul de fișier sockfd nu se referă la un soclu.

       EOPNOTSUPP
              Soclul nu este de un tip care să accepte operația listen().

STANDARDE

       POSIX.1-2001, POSIX.1-2008, 4.4BSD (listen() a apărut pentru prima dată în 4.2BSD).

NOTE

       Pentru a accepta conexiuni, se execută următorii pași:

           (1)  Un soclu este creat cu socket(2).

           (2)  Soclul  este legat la o adresă locală folosind bind(2), astfel încât alte socluri
                să poată fi conectate la el prin connect(2).

           (3)  Cu listen() se specifică disponibilitatea de a accepta  conexiuni  primite  și  o
                limită a cozii de așteptare pentru conexiunile primite.

           (4)  Conexiunile sunt acceptate cu accept(2).

       Comportamentul  argumentului  backlog pe socket-urile TCP s-a schimbat odată cu Linux 2.2.
       Acum, acesta specifică lungimea cozii de așteptare pentru soclurile complet stabilite care
       așteaptă  să fie acceptate, în loc de numărul de cereri de conexiune incomplete.  Lungimea
       maximă  a  cozii  de  așteptare  pentru  socluri  incomplete   poate   fi   stabilită   cu
       /proc/sys/net/ipv4/tcp_max_syn_backlog.  Atunci când sunt activate „syncookies”, nu există
       o lungime maximă logică și această valoare este ignorată.  Pentru  mai  multe  informații,
       consultați tcp(7).

       În   cazul   în   care   argumentul   backlog   este   mai   mare   decât   valoarea   din
       /proc/sys/net/core/somaxconn, atunci acesta este  limitat  în  mod  silențios  la  această
       valoare.   Începând  cu  Linux  5.4,  valoarea  implicită  din  acest fișier este 4096; în
       nucleele anterioare, valoarea implicită este 128.  Înainte de Linux 2.4.25, această limită
       era o valoare codificată în mod rigid, SOMAXCONN, cu valoarea 128.

EXEMPLE

       A se vedea bind(2).

CONSULTAȚI ȘI

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

TRADUCERE

       Traducerea  în  limba  română  a  acestui  manual  a  fost  creată  de Remus-Gabriel Chelu
       <remusgabriel.chelu@disroot.org>

       Această  traducere  este  documentație  gratuită;  citiți  Licența  publică  generală  GNU
       Versiunea  3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  sau  o  versiune  ulterioară cu
       privire la condiții privind drepturile de autor.  NU se asumă Nicio RESPONSABILITATE.

       Dacă găsiți erori în traducerea acestui  manual,  vă  rugăm  să  trimiteți  un  e-mail  la
       ⟨translation-team-ro@lists.sourceforge.net⟩.