С MSDN :
struct in_addr6 {
u_char s6_addr[16]; /* IPv6 address */
};
struct sockaddr_in6 {
short sin6_family; /* AF_INET6 */
u_short sin6_port; /* Transport level port number */
u_long sin6_flowinfo; /* IPv6 flow information */
struct in_addr6 sin6_addr; /* IPv6 address */
u_long sin6_scope_id; /* set of interfaces for a scope */
};
Из вашего вопроса я вижу, что:
SOCKADDR_IN6 != sockaddr_in6
Путаница в нижнем и верхнем регистре?
Вы также не можетеЕсли у вас установлена последняя версия winsock, я не уверен, насколько далеко назад была введена поддержка IPV6, вы можете проверить, является ли это вашей проблемой.