Utilisation de la fonction WSAAddressToString()?
Merci de ton aide :). J'ai effectué quelques modifications en passant désormais une structure de type sockaddr_in6 à la fonction. En regardant de plus près sa signature j'ai aussi vu qu'elle voulait un LPDWORD qui semble être en réalité un pointeur vers un DWORD. J'ai donc modifié aussi le type.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
struct in_addr MulticastAddr;
struct sockaddr_in6 MulticastAddr_6;
char lAdresseMulticastV6[46];
DWORD dw = sizeof(lAdresseMulticastV6) ;
DWORD MulticastAddr_6_Size = sizeof(MulticastAddr_6);
if (addressType == IPV4)
{
MulticastAddr = connection->mediaAddress;
sprintf(URL, "udp://%s -rtp -audio", inet_ntoa(MulticastAddr));
}
else if(addressType == IPV6)
{
MulticastAddr_6.sin6_addr = connection->mediaAddressIPV6;
if( 0 == (WSAAddressToString((struct sockaddr *)&MulticastAddr_6,MulticastAddr_6_Size,NULL,lAdresseMulticastV6,&dw)))
{
sprintf(URL, "udp://%s -rtp -audio", lAdresseMulticastV6); }
else
{
printf("Erreur WSAAddressToString : %d \n", WSAGetLastError());
}
} |
Néanmoins, ça ne fonctionne toujours pas mais l'erreur n'est plus la même...c'est la 10022 : "WSAEINVAL : The specified address is not a valid socket address, or no transport provider supports the indicated address family."