Страница 160 из 399
14.6. Вспомогательные данные
Вспомогательные данные (ancillary data) можно отправлять и получать, используя элементы msg_control и msg_controllen структуры msghdr с функциями sendmsg и recvmsg. Другой термин, используемый для обозначения вспомогательных данных, — управляющая информация (control information). В этом разделе мы рассматриваем данное понятие и показываем структуру и макросы, используемые для создания и обработки вспомогательных данных. Примеры программ мы откладываем до следующих глав, в которых рассказывается о применении вспомогательных данных.
В табл. 14.4 приводится обобщение различных вариантов применения вспомогательных данных, рассматриваемых в этой книге.
Таблица 14.4. Использование вспомогательных данных
Протокол cmsg_level cmsg_type Описание IPv4 IPPROTO_IP IP_RECVDSTADDR Получает адрес получателя с дейтаграммой UDP IP_RECVIF Получает индекс интерфейса с дейтаграммой UDP IPv6 IPPROTO_IPV6 IPV6_DSTOPTS Задает/получает параметры получателя IPV6_HOPLIMIT Задает/получает предел количества транзитных узлов IPV6_HOPOPTS Задает/получает параметры для транзитных узлов IPV6_NEXTHOP Задает следующий транзитный адрес IPV6_PKTINFO Задает/получает информацию о пакете IPV6_RTHDR Задает/получает информацию о пакете Домен Unix SOL_SOCKET SCM_RIGHTS Посылает/получает дескрипторы SCM_CREDS Посылает/получает данные, идентифицирующие пользователя