Ниже приведен фрагмент кода, который я написал для приема соединений от клиента.Я хотел напечатать имя удаленного хоста.getnameinfo () завершается с ошибкой: ai_family не поддерживается.Я пробовал различные варианты через Интернет, такие как указание AF_UNSPEC.Ничто не работает для меня.Я напечатал поле sa_family, и оно 62752. Это допустимое значение?Что я делаю неправильно.Любая помощь приветствуется.
socklen_t sin_size;
struct sockaddr client_addr;
int sockfd = accept(serv_sockfd,&client_addr, &sin_size);
if(sockfd == -1)
error("Accept failed");
char remote_host[NI_MAXHOST];
cerr <<"sa_family" << client_addr.sa_family<<endl;
int en;
if ((en = getnameinfo(&client_addr, sin_size, remote_host, sizeof(remote_host),NULL, 0, NI_NAMEREQD))!=0)
cerr << "getnameinfo: " << gai_strerror(en);
else
printf("host=%s\n", remote_host);