logo search
Ответы к экзамену по ПСП

Применение символического адреса хоста.

При наличии специальной службы в сети способной разрешить адрес компьютера по его символическому имени (например, DNSили некоторые протоколы, работающие поверхTCP/IP) поиск серверного компьютера можно осуществить с помощью функцииgethostbyname(рисунок 3.16.1). При этом предполагается, что известно символическое имя компьютера, на котором находится программа сервера.

Такое решение достаточно часто применяется разработчиками распределенных систем. Связав набор программ-серверов с определенными стандартными именами компьютеров, распределенное приложение становится не зависимым от адресации в сети. Естественно при этом необходимо позаботиться, чтобы существовала служба, разрешающая адреса компьютеров по имени. Установка таких служб, как правило, возлагается на системного администратора сети.

Помимо функции gethostbynameв составеWinsock2 имеется функцияgethostbyaddr, назначение которой противоположно: получение символического имени компьютера по сетевому адресу. Обе функции используют структуруhosten, содержащуюся вWinsock2.h.

Если с помощью функции gethostbynameполучить адрес компьютера с именемlocalhost, то в будет собственный полученIP-адрес компьютера или адрес INADDR_LOOPBACK.

Кроме того, для получения действительного собственного имени компьютера (NetBIOS-имени илиDNS-имени) можно использовать функциюgethostname.