Есть функция, в которой сокет привязывается к порту, и ночинает его слушать:
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;
}
Данную функцию хочу использовать для организации работы простого сервера. Нужно: получить доменное имя компьютера, на котором будет запускаться эта программа для того, чтобы с его помощью подключится к запущенному серверу из клиентской программы.