Conexiunea (2) face apel la o structură completă sockaddr_in sau poate suficienta doar cu struct in_addr?

Sunt curios pentru că pagina de conectare (2) a omului este destul de scurtă și este nevoie de un struct sockaddr * care este în mod obișnuit turnat oricum ..

0

2 răspunsuri

sockaddr_in and in_addr aren't even similar. There's no way that would work. There different because more than an address is usually needed. For example, a port number is needed to establish connect a IP socket.

3
adăugat

Modul în care funcționează apelul connect (2) depinde de domeniul socketului pe care îl utilizați (adică valoarea trecută ca primul parametru pentru soclu (2) ). Dacă utilizați familia de protocoale AF_INET , atunci connect se așteaptă la un sockaddr_in . Dacă utilizați protocolul AF_INET6 , atunci se așteaptă ca un sockaddr_in6 , alte familii de protocol să aibă propria structură de adresă.

Indiferent de familia de protocoale pe care o utilizați, trebuie să utilizați structura de adrese a acelei familii, distribuită într-un struct sockaddr , atunci când apelați connect sau orice alte funcții socket.

1
adăugat