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  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.

Pagini de manual de Linux 6.03                  4 decembrie 2022                                       listen(2)