Получение и назначение имени внутреннего домена узла сети

В сетевой операционной системе существует внутренняя строковая переменная, содержащая имя домена, к которому принадлежит компьютер. Имя домена назначается сетевому центру административным органом объединенной сети. После этого в сетевом центре формируется строка символов, идентифицирующая принадлежащую ему часть пространства доменных имен. Эта строка назначается в качестве имени домена всем компьютерам, принадлежащим этому центру. Например, машины в домене cs.purdue.edu имеют имена, взятые из легенды о короле Артуре: merlin, arthur, guenevere и lancelot. Самому домену присвоено имя came lot, поэтому операционной системе, работающей на машинах этой группы, необходимо сообщить, что она находится в домене came lot. Для этого привилегированный процесс операционной системы использует функцию setdomainname, которая имеет следующий синтаксис:

setdomainname(адрес-имени, длина)

Параметр адрес-имени задает адрес массива байтов, содержащий имя домена, а параметр длина определяет длину этого имени.

Для получения имени домена пользовательские процессы используют функцию getdomainname, которая имеет следующий синтаксис:

getdomainname(адрес-буфера, длина)

Здесь параметр адрес-буфера определяет адрес массива, в который помещается имя домена, а параметр длина является целым числом, определяющим длину массива.

Функции библиотеки сокетов

Кроме описанных выше функций в API-интерфейс сокетов включен набор библиотечных процедур, которые выполняют различные полезные функции, связанные с работой в сети. На рис. 22.5 показано, чем отличаются системные вызовы и библиотечные процедуры. Системные вызовы передают управление операционной системе компьютера, в то время как библиотечные процедуры напоминают обычные подпрограммы, которые программисты включают в программу.

Многие процедуры, входящие в библиотеку сокетов, предоставляют доступ к службам баз данных, позволяющих процессу определить имена машин и сетевых служб, номера портов протокола и другую необходимую информацию. Например, существует набор библиотечных процедур, которые предоставляют доступ к базе данных сетевых служб. Запись в базе данных сетевых служб состоит из трех полей, информация в которых хранится в удобном для восприятия человеком виде: имени сетевой службы, типа используемого протокола и номера стандартного порта протокола этой службы. С помощью соответствующих библиотечных процедур прикладной процесс может извлечь нужную информацию из соответствующего элемента базы данных и представить ее в требуемом виде.

В следующих разделах рассматриваются группы библиотечных процедур, объясняется их назначение, а также приведена информация о способе их использования. Как будет показано ниже, наборы библиотечных процедур, предоставляющих доступ к базе данных с последовательной организацией, функционируют по одному образцу. Каждый набор позволяет приложению:

  • подключиться к базе данных;
  • извлечь из базы данных содержащуюся в ее записях информацию (по одной записи за одно обращение);
  • закрыть соединение с базой данных.

Используемые для выполнения этих операций библиотечные процедуры называются setXent, getXent и endXent, где X обозначает имя базы данных. Например, библиотечные программы для работы с базой данных узлов сети (host database) называются sethostent, gethostent и endhostent. Поэтому ниже при их описании будет приведена только общая информация о вызове без повторения подробностей использования.

Отличие между библиотечными процедурами, помещенными в прикладную программу, и системными вызовами, которые являются частью операционной системы. Программа может выполнять оба вызова; библиотечные процедуры, могут вызывать другие библиотечные процедуры, или выполнять системные вызовы

Похожие статьи Меню Опрос Фото Популярное