Je développe un protocole client serveur TCP/IP et je voudrais m'assurer que l'implémentation soit compatible IPv4 et IPv6. Cela devrait être possible car il n'y a que le format de l'adresse IP qui change.
Les fonctions Berkeley sont les mêmes, il n'y a en principe qu'à remplacer AF_INET par AF_INET6 et PF_INET par PF_INET6 si je m'en réfère à cette page Wikipedia.
Le serveur devra vraisemblablement créer 2 sockets, l'un pour IPv6 et l'autre IPv4 ou choisir l'un des deux en fonction d'un paramètre de configuration.
Je m'attends à ce que client recevra en entrée un nom de machine ou une adresse ip en ASCII dans une chaine de caractère. Comment cela se passe-t-il ensuite ? Il faudrait pouvoir déterminer à partir de l'adresse ou du nom de machine si on a affaire à de l'IPv6 ou pas.
Une autre question est sur ce qu'il faut faire sur windows. J'en étais resté à WinSock 2.0. Les choses ont-elles changées depuis ? Y a t-il eu changement de version ?
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0), &WSAData);
Partager