Provided by: manpages-ro-dev_4.27.0-1_all bug

NUME

       connect - inițiază o conexiune la un soclu

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

SINOPSIS

       #include <sys/socket.h>

       int connect(int sockfd, const struct sockaddr *addr,
                   socklen_t addrlen);

DESCRIERE

       Apelul  de  sistem  connect()  conectează  soclul  menționat  de  descriptorul de fișier sockfd la adresa
       specificată de addr.  Argumentul addrlen specifică dimensiunea lui addr. Formatul adresei din  addr  este
       determinat de spațiul de adresare al soclului sockfd; consultați socket(2) pentru detalii suplimentare.

       Dacă  soclul  sockfd  este  de  tip  SOCK_DGRAM,  atunci  addr  este adresa la care sunt trimise implicit
       datagramele și singura adresă de la care sunt primite datagramele. Dacă soclul este  de  tip  SOCK_STREAM
       sau  SOCK_SEQPACKET,  acest  apel  încearcă  să realizeze o conexiune la soclul care este asociat adresei
       specificate de addr.

       Unele socluri de protocol (de exemplu, socluri de flux de domeniu UNIX) pot executa cu succes connect() o
       singură dată.

       Unele socluri de protocol (de exemplu, socluri de tip  datagramă  în  domeniile  UNIX  și  Internet)  pot
       utiliza connect() de mai multe ori pentru a-și schimba asocierea.

       Unele  socluri  de  protocol  (de  exemplu, socluri TCP, precum și socluri datagramă în domeniile UNIX și
       Internet) pot dizolva asocierea prin conectarea la o adresă cu membrul sa_family din sockaddr definit  la
       AF_UNSPEC;  ulterior,  soclul  poate  fi conectat la o altă adresă.  (AF_UNSPEC este acceptat începând cu
       Linux 2.2.)

VALOAREA RETURNATĂ

       Dacă conexiunea sau asocierea reușește, se returnează zero. În caz de eroare, se returnează -1, iar errno
       este configurată pentru a indica eroarea.

ERORI-IEȘIRE

       Următoarele sunt doar erori generale de soclu. Pot exista și alte coduri de eroare specifice domeniului.

       EACCES Pentru soclurile de domeniu UNIX, care sunt identificate prin nume de rută: permisiunea de scriere
              este refuzată pe fișierul soclu sau permisiunea  de  căutare  este  refuzată  pentru  unul  dintre
              directoarele din prefixul căii. A se vedea și path_resolution(7).

       EACCES
       EPERM  Utilizatorul  a  încercat  să se conecteze la o adresă de difuzare fără a avea activat fanionul de
              difuzare al soclului sau solicitarea de conectare a eșuat din cauza  unei  reguli  de  paravan  de
              protecție local.

       EACCES De  asemenea,  poate  fi  returnat dacă o politică SELinux a refuzat o conexiune (de exemplu, dacă
              există o politică care spune că un proxy HTTP se poate conecta  numai  la  porturile  asociate  cu
              servere HTTP, iar proxy-ul încearcă să se conecteze la un port diferit).

       EADDRINUSE
              Adresa locală este deja în uz.

       EADDRNOTAVAIL
              (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).

       EAFNOSUPPORT
              Adresa furnizată nu avea familia de adrese corectă în câmpul sa_family.

       EAGAIN Pentru  soclurile  de domeniu UNIX fără blocare, soclul este fără blocare, iar conexiunea nu poate
              fi finalizată imediat.  Pentru alte familii de socluri, nu există suficiente  intrări  în  memoria
              cache de direcționare.

       EALREADY
              Soclul este fără blocare și o încercare anterioară de conectare nu a fost încă finalizată.

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

       ECONNREFUSED
              Un apel connect() pe un soclu de flux nu a găsit pe nimeni ascultând la adresa de la distanță.

       EFAULT Adresa structurii soclului este în afara spațiului de adrese al utilizatorului.

       EINPROGRESS
              Soclul  este  fără blocare și conexiunea nu poate fi finalizată imediat (soclurile de domeniu UNIX
              eșuează în schimb cu EAGAIN). Este posibil să efectuați select(2) sau  poll(2)  pentru  completare
              selectând  soclul  pentru  scriere.  După  ce  select(2)  indică permisiunea de scriere, utilizați
              getsockopt(2) pentru a citi opțiunea SO_ERROR  la  nivelul  SOL_SOCKET  pentru  a  determina  dacă
              connect()  s-a finalizat cu succes (SO_ERROR este zero) sau fără succes (SO_ERROR este unul dintre
              codurile de eroare obișnuite enumerate aici, explicând motivul eșecului).

       EINTR  Apelul de sistem a fost întrerupt de un semnal care a fost capturat; consultați signal(7).

       EISCONN
              Soclul este deja conectat.

       ENETUNREACH
              Rețeaua este inaccesibilă

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

       EPROTOTYPE
              Tipul de soclu nu acceptă protocolul de comunicare solicitat.  Această  eroare  poate  apărea,  de
              exemplu,  la  o  încercare  de  conectare a unui soclu de dategramă de domeniu UNIX la un soclu de
              flux.

       ETIMEDOUT
              Depășire a timpului de așteptare în timpul încercării de conectare. Este posibil  ca  serverul  să
              fie  prea  ocupat  pentru  a  accepta  noi  conexiuni.  Rețineți  că pentru soclurile IP timpul de
              așteptare poate fi foarte lung atunci când „syncookies” sunt activate pe server.

STANDARDE

       POSIX.1-2008.

ISTORIC

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

NOTE

       Dacă connect() eșuează, considerați starea soclului ca  fiind  nespecificată.  Aplicațiile  portabile  ar
       trebui să închidă soclul și să creeze unul nou pentru reconectare.

EXEMPLE

       Un exemplu de utilizare a apelului de sistem connect(), este prezentat în getaddrinfo(3).

CONSULTAȚI ȘI

       accept(2), bind(2), getsockname(2), listen(2), socket(2), path_resolution(7), selinux(8)

TRADUCERE

       Traducerea    în   limba   română   a   acestui   manual   a   fost   făcută   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.9.1                    2 mai 2024                                         connect(2)