Functia accept

Functia accept accepta o conectare la un socket.

Sintaxa

SOCKET accept (

SOCKET s, 
struct sockaddr FAR* addr, 
int FAR* addrlen 
);
 

unde:

Aceasta functie extrage prima conexiune din stiva (coada) de asteptare la conectarea la socketul s, creeaza un nou socket si intoarce un descriptor catre noul socket. Socketul nou creat are aproximativ aceleasi proprietati ca si s. Daca nu exista nici o cerere de conectare in stiva de asteptare si socketul nu este marcat ca "fara blocare" (nonblocking), atunci functia accept blocheaza apelantul pana cand se face o conectare. Daca socketul este marcat ca fiind "fara blocare" si nu exista nici o cerere in coada de asteptare, accept intoarce o eroare. Socketul acceptat nu poate fi folosit pentru a accepta noi conexiuni. Socketul initial ramane deschis.

Argumentul addr este un parametru rezultat care va contine adresa entitatii care doreste conectarea, asa cum este ea cunoscuta stratului de comunicare. Formatul exact al acestui argument depinde de familia de adrese stabilita atunci cand socketul a fost creat.

Si argumentul addrlen contine o valoarea rezultat; el trebuie sa contine initial spatiul alocat pentru structura addr; la revenire el va contine lungimea reala (in octeti) a adresei returnate. Acest apel este folosit cu socketuri orientate pe conexiune precum SOCK_STREAM. Daca pointerii  addr si/sau addrlen sunt egali cu NULL, Atunci nu s-a returnat nici un fel de informatie despre adresa indepartata a socketului acceptat.

Valoare returnata

Daca nu apare nici o eroare, accept intoarce o valoare de tip SOCKET care este un descriptor pentru socketul acceptat. In caz contrar, o este intoarsa o valoare INVALID_SOCKET si (in sitemul Windows, un cod de eroare specific poate fi obtinut apeland WSAGetLastError).

Cornel Mironel Niculae, 2004-2005
13-Nov-2004