@PavelG94

Как с помощью Linux API получить доменное имя своего компьютера?

Есть функция, в которой сокет привязывается к порту, и ночинает его слушать:
bool ListenPort(int sock, int port)
{
    addrinfo hints, *results, *res = NULL;

    memset(&hints, 0, sizeof hints);
    hints.ai_family = AF_INET;
    hints.ai_socktype = SOCK_STREAM;
    hints.ai_flags = AI_PASSIVE;

    int status = getaddrinfo(NULL, std::to_string(port).c_str(), &hints, &results);
    if (status != 0) {
      //error
      return false;
    }
    int yes = 1;
    if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(int)) == -1) {
        return false;
    }
    for(res = results; res != NULL; res = res->ai_next) {
        int bind_res = bind(sock, res->ai_addr, res->ai_addrlen);
        if (bind_res != -1) break;
    }
    if (res == NULL)  {
        return false;
    }

    int backlog = 10;
    int listen_res = listen(sock, backlog);
    if (listen_res < 0)
        return false;
    return true;
}

Данную функцию хочу использовать для организации работы простого сервера. Нужно: получить доменное имя компьютера, на котором будет запускаться эта программа для того, чтобы с его помощью подключится к запущенному серверу из клиентской программы.
  • Вопрос задан
  • 322 просмотра
Пригласить эксперта
Ответы на вопрос 1
martin74ua
@martin74ua Куратор тега Linux
Linux administrator
hostname
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы