Envoyé par
souviron34
parce que dans la vraie vie, sur de très gros softs, ça arrive....
Tu aurais pu prendre l'exemple des adresse socket :
1 2 3 4 5
| struct sockaddr {
unsigned char sa_len; /* longueur totale */
sa_family_t sa_family; /* famille d'adresse */
char sa_data[14]; /* valeur de l'adresse */
}; |
1 2 3 4 5 6 7
| struct sockaddr_in {
uint8_t sin_len; /* longueur totale */
sa_family_t sin_family; /* famille : AF_INET */
in_port_t sin_port; /* le numéro de port */
struct in_addr sin_addr; /* l'adresse internet */
unsigned char sin_zero[8]; /* un champ de 8 zéros */
}; |
La structure assez particulière fait qu'il est nécessaire de caster les sockaddr_in en sockaddr, par exemple avec :
int connect(int sockfd, struct sockaddr *serv_addr, socklen_t addrlen);
Partager