СОПОСТАВЛЕНИЕ TLI И СОКЕТОВ
Таблица 5.4. устанавливает соответствие между программами TLI и примитивами сокетов (по [AAT&T 90]). Вызовы TLI покрывают все вызовы сокетов. Таким образом, мож- но эмулировать сокет-интерфейс с библиотекой TLI. Необходимо, однако, отметить, что некоторые примитивы, ука-занные в таблице вместе, функционируют по-разному: например, listen () и t_listen, accept () и t_accept ()...
Таблица 5.4. Примитивы TLI и сокетов.
TLI | Сокеты | Описание | |||
t_open | socket | Возвращает дескриптор | |||
t_bind | bind | Связывает имя с десктиптором | |||
t_optmgmt | setsocket | Выставляет опции транспорта | |||
t_unbind | Уничтожает точку доступа транспорта | ||||
t_close | close | Уничтожает ресурсы, связанные с точкой доступа транспорта | |||
t_getinfo | getsockpoint | Возвращает информацию о транспорте | |||
t_getstate | ioctl,fcntl,stat | Возвращает сосотояние точки доступа траспорта | |||
t_alloc
t_free | Выделяет или освобождает память | ||||
t_look | oictl | Читает событие, связанное с точкой доступа транспорта | |||
t_error | perror | Выдает сообщение об ошибке в незалодированном виде | |||
t_connect | connect | Устпнвливает соединение с удаленным устройством | |||
t_listen | listen | Установка в состояние ожидания запросов на соединение | |||
t_accept | accept | Согласие на на входящее соединение | |||
t_snd
putmsg | send
sendto sendmsg | Запись данных в режиме соединения | |||
t_rcv
getmsg | recv
recvfrom recvmsg | Чтение данных в режиме соединения | |||
t_snudata | sendto
sendmsg | Запись данных в режиме отсутствия соединения | |||
t_rcvudata | recvfrom
recvmsg | Чтение данных в режиме отсутствия соединения | |||
read
write | read
write | Чтение и запись данных в режиме соединения.Для TLI необходимо
ввести модуль tirdwr в STREAM | |||
t_snddis
t_rcvdis | Отсоедтняет точку доступа транспорта | ||||
t_sndrel
t_rcvrel | shutdown | Освобождает точку доступа транспорта |
Следует отметить, что имеется большое сходство в использовании сокетов и библиотеки TLI, причем сложность TLI несколько больше, вследствие ее большей ориентированности на требования стандартов транспортной службы ISO.
В System V Release 4 услуги, оказываемые сокетами, реализуются в форме библиотеки-надстройки над STREAMS. Системные вызовы сокетов системы BSD становятся здесь библиотечными программами. Отсюда некоторые семантические различия, описанные в документации AT&T, которые, при небрежной обработке, рискуют вызвать сбои при переносе программы с одной системы на другую.