Provided by: manpages-ro-dev_4.28.0-2_all 

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)