WSAStringToAddress() ne fonctionne pas?? - API Win32 - Programmation
MarshPosté le 27-06-2008 à 16:50:25
Pour un projet, je dois modifier un player video pour qu'il supporte IPv6. Je cherche à convertir une adresse IPv6 sous forme de char[] en une adresse compréhensible par le système. La fonction inet_pton n'existant malheureusement pas sur l'API windows, la fonction WSAStringToAddress() semble faire à peu près la même chose. Néanmoins, lorsque j'exécute mon code, l'erreur 10022 "WSAEINVAL"....
Voici mon code (abrégé) :
Code :
void main()
{
struct sockaddr_in6 addr_6;
int addr_6_size = sizeof(addr_6);
if (AddressTypeIPV6 == variable->addressType) //Si l'adresse contenue dans le fichier est une adresse IPv6...
Pour info adressStr est un char[128]. En debug, quand je trace la variable addr_6, je n'ai rien de correct dans la structure :
Code :
sin_family 0xcccc short
S_addr 0xcccccccc unsignedlong
Je ne comprend pas pourquoi le champ S_addr de ma structure in6_addr de sockaddr_in6 est un long (32 bit) alors que ça semble trop petit pour contenir une adresse IPv6...mon cast serait-il incorrect? Quelqu'un voit t-il pourquoi mon char n'est pas bien converti en addresse?
Marsh Posté le 27-06-2008 à 16:50:25
Pour un projet, je dois modifier un player video pour qu'il supporte IPv6.
Je cherche à convertir une adresse IPv6 sous forme de char[] en une adresse compréhensible par le système. La fonction inet_pton n'existant malheureusement pas sur l'API windows, la fonction WSAStringToAddress() semble faire à peu près la même chose. Néanmoins, lorsque j'exécute mon code, l'erreur 10022 "WSAEINVAL"....
Voici mon code (abrégé) :
Pour info adressStr est un char[128].
En debug, quand je trace la variable addr_6, je n'ai rien de correct dans la structure :
Je ne comprend pas pourquoi le champ S_addr de ma structure in6_addr de sockaddr_in6 est un long (32 bit) alors que ça semble trop petit pour contenir une adresse IPv6...mon cast serait-il incorrect?
Quelqu'un voit t-il pourquoi mon char n'est pas bien converti en addresse?
Merci d'avance!