“‘Sockaddr_in’ uneclared (первое использование в этой функции)” ошибка, несмотря на включение необходимых заголовков

#include  #include  #include  #include  #include  #include  #include  #include  #include  #include  #include  #include  #include  #include  #include  #include #include  #include  #define BACKLOG 10 void * get_in_addr(struct sockaddr *sa){ if(sa->sa_family == AF_INET){ return &((sockaddr_in *)sa)->sin_addr; } else if(sa->sa_family == AF_INET6){ return &((sockaddr_in6 *)sa)->sin6_addr; } } 

Я использую структуру sockaddr_in в своем коде для chekc, является ли входящее соединение IPv4 или IPV6-адресом. Я получаю сообщение об ошибке «sockaddr_in» uneclared (первое использование в этой функции) », несмотря на включение в мой код заголовка netinet / in.h. Есть что-то, чего я не вижу здесь?

sockaddr_in не typedef , поэтому попробуйте использовать его со struct как struct ниже.

 (struct sockaddr_in *)