getnameinfoプロトタイプはsockaddrを要求しますが、私はsockaddr_inを使用した例しか見ていません。この例はsockaddr用に書き直すことができますか?sin_familyはsa_familyになりますが、sin_portとsin_addrはどうですか?それらはsa_dataにどのように含まれていますか?
struct sockaddr{
unsigned short sa_family;
char sa_data[14];
};
struct sockaddr_in{
short sin_family;
unsigned short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};
struct sockaddr_in sin;
memset(&sin, 0, sizeof(sin));
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = inet_addr(IPvar);
sin.sin_port = 0; // If 0, port is chosen by system
getnameinfo( (struct sockaddr *)&sin, sizeof(sin), buffervar, sizeof(buffervar), NULL, 0, 0);