Таблица 7.1. Перечень служебных операторов для работы с соединителями (Беркли)
Имя команды |
Назначение |
getdomainname |
Возвращает имя домена |
gethostbyname |
Возвращает IP-адрес для заданного сетевого имени. |
gethostname |
Возвращает имя ЭВМ (обычно имя ее домена). |
gethostadr |
Возвращает IP-адрес ЭВМ. |
getnetaddr |
Возвращает адрес сети. |
getnetname |
Возвращает имя сети. |
getpeername |
Возвращает имя партнера, подключенного к соединителю. |
getportbyname |
Возвращает имя и код протокола для указанного имени (например, ICMP, UDP или TCP) |
getportbynumber |
Возвращает имя протокола для указанного его кода |
getservbyname |
Извлекает из базы данных название протокола и номер порта для указанного имени сетевой услуги |
getservbyport |
Возвращает имя сетевой услуги для заданного номера порта |
getsockname |
Возвращает местный адрес соединителя. |
getsockopt |
Запрашивает информацию о соединителе. |
htonl |
Преобразует порядок байтов 32-разрядного кода из машинного в сетевой. |
htons |
Преобразует порядок байтов 16-разрядного кода из машинного в сетевой. |
inet_addr |
Преобразует символьную строку IP-адреса из десятично-точечного формата в 32-разрядный код с сетевым порядком байтов. |
inet_ntoa |
Преобразует IP-адрес в десятично-точечный формат. |
ioctlsocket |
Управляет параметрами соединителя, связанными с обработкой операций ввода/вывода. |
ntohl |
Преобразует порядок байтов 32-разрядного кода из сетевого в машинный. |
ntohs |
Преобразует порядок байтов 16-разрядных кодов из сетевого в машинный. |
ethostname |
Устанавливает имя ЭВМ. |
setsockopt |
Устанавливает опции соединителя. |
shutdown |
Закрывает один из концов дуплексного канала для местной ЭВМ. |
socketpair |
Генерирует пару соединителей. |
Большинство перечисленных команд имеют развитую систему диагностики, кроме того, во многих реализациях Unix имеется много других полезных команд, описание которых вы можете найти в инструкциях по использованию системы Unix. Рассмотрим некоторые из них.
Программа ioctlsocket(s, long cmd, u_long FAR*argp) служит для получения параметров соединителя (выполнение не зависит от типа протокола и коммуникационной субсистемы).
Аргумент cmd представляет собой код команды, которая будет выполнена для соединителя s, argp - указатель на параметр команды. Возможно применение команд: FIONBIO - разрешает/запрещает режим блокировки соединителя s (команда WSAAsyncSelect ставит соединитель в режим запрета блокировок автоматически). FIONREAD - определяет объем данных, которые могут быть автоматически считаны через соединитель s. SIOCATMARK - задает режим чтения приоритетной информации (для соединителей типа SOCK_STREAM.
Программа setsockopt(s, int level, int optname, const char far*optval, int optlen) устанавливает текущие значения опций для соединителя s. Аргумент level описывает уровень, на котором определена данная опция (например, SOL_SOCKET или IPPROTO_TCP). optname - имя опции, значение которой устанавливается, optval - указатель на буфер, где лежит значение опции, optlen - размер этого буфера. Для опции SO_LINGER - это размер структуры, для остальных - длина целого. При корректном исполнении setsockopt возвращает нуль, в противном случае SOCKET_ERROR. Программа setsockopt поддерживает следующие опции (BSD поддерживает и некоторые другие опции; колонка тип соответствует значению optval, таблица 7.2):