Data la seguente struttura dati di libreria dove memorizzare i dati del socket
#include <sys/socket.h>
#include <netinet/in.h>
struct sockaddr_in {
sa_family_t sin_family;
in_port_t sin_port; /* network order */
struct in_addr sin_addr;
};
struct in_addr {
uint32_t s_addr; /* network order */
};
Non capisco come mai il campo sin_addr, che ospita l'indirizzo ip, è a sua volta una struttura, perchè?
Non era più semplice dichiare la struttura datti come segue ? Mi sfugge la motivazione.
struct sockaddr_in {
sa_family_t sin_family;
in_port_t sin_port; /* network order */
uint32_t s_addr;
};