Mir-knigi.online
Книги онлайн читать бесплатно!
  • Главная
  • Жанры
  • ТОП книг
  • ТОП авторов
  • Контакты

UNIX: разработка сетевых приложений

Часть 201 из 399 Информация о книге

struct rt_msghdr { /* из <net/route.h> */

 u_short rtm_msglen;  /* для пропуска некорректных сообщений */

 u_char  rtm_version; /* для обеспечения двоичной совместимости в будущем */

 u_char  rtm_type;    /* тип сообщения */

 u_short rtm_index; /* индекс интерфейса, с которым связан адрес */

 int     rtm_flags; /* флаги */

 int     rtm_addrs; /* битовая маска, идентифицирующая sockaddr (структуру адреса

                       сокета) в msg */

 pid_t   rtm_pid;   /* идентификация отправителя */

 int     rtm_seq;   /* для идентификации действия отправителем */

 int     rtm_errno; /* причина неудачного выполнения */

 int     rtm_use;   /* из rtentry */

 u_long  rtm_inits; /* какую метрику мы инициализируем */

 struct rt_metrics rtm_rmx; /* сами метрики */

};

struct if_msghdr { /* из <net/if.h> */

 u_short ifm_msglen;  /* для пропуска некорректных сообщений */

 u_char  ifm_version; /* для обеспечения двоичной совместимости в будущем */

 u_char  ifm_type;    /* тип сообщения */

 int     ifm_addrs;       /* как rtm_addrs */

 int     ifm_flags;       /* значение if_flags */

 u_short ifm_index;       /* индекс интерфейса, с которым связан адрес */

 struct if_data ifm_data; /* статистические и другие сведения */

};

struct ifa_msghdr { /* из <net/if.h> */

 u_short ifam_msglen;  /* для пропуска некорректных сообщений */

 u_char  ifam_version; /* для обеспечения двоичной совместимости в будущем */

 u_char  ifam_type;    /* тип сообщения */

 int     ifam_addrs;  /* как rtm_addrs */

 int     ifam_flags;  /* значение ifa_flags */

 u_short ifam_index;  /* индекс интерфейса, с которым связан адрес */

 int     ifam_metric; /* значение ifa_metric */

};

struct ifma_msghdr { /* из <net/if.h> */

 u_short ifmam_msglen;  /* для пропуска некорректных сообщений */

 u_char  ifmam_version; /* для обеспечения двоичной совместимости в будущем */

 u_char  ifmam_type;    /* тип сообщения */

 int     ifmam_addrs;   /* аналог rtm_addrs */

 int     ifmam_flags;   /* значение ifa_flags */

 u_short ifmam_index;   /* индекс связанного ifp */

};

struct if_announcemsghdr { /* из <net/if.h> */

 u_short ifan_msglen;  /* для пропуска некорректных сообщений */

 u_char  ifan_version; /* для обеспечения двоичной совместимости в будущем */

 u_char  ifan_type;    /* тип сообщения */

 u_short ifan_index;   /* индекс связанного ifp */

 char    ifan_name[IFNAMSIZ]; /* название интерфейса, напр. "en0" */

 u_short ifan_what;    /* тип объявления */

};

Первые три элемента каждой структуры одни и те же: длина, версия и тип сообщения. Тип — это одна из констант из первого столбца табл. 18.1. Элемент длины

xxx_msglen
позволяет приложению пропускать типы сообщений, которые оно не распознает.

Элементы

rtm_addrs
,
ifm_addrs
и
ifam_addrs
являются битовыми масками, указывающими, какая из возможных восьми структур адреса сокета следует за сообщением. В табл. 18.2 показаны константы и значения для битовой маски, определяемые в заголовочном файле
<net/route.h>
.

Таблица 18.2. Константы, используемые для ссылки на структуры адреса сокета в маршрутизирующих сообщениях

Битовая маска, константа Битовая маска, значение Индекс массива, константа Индекс массива, значение Структура адреса сокета содержит
RTA_DST 0x01 RTAX_DST 0 Адрес получателя
RTA_GATEWAY 0x02 RTAX_GATEWAY 1 Адрес шлюза
RTA_NETMASK 0x04 RTAX_NETMASK 2 Маска сети
RTA_GENMASK 0x08 RTAX_GENMASK 3 Маска клонирования
RTA_IFP 0x10 RTAX_IFP 4 Имя интерфейса
RTA_IFA 0x20 RTAX_IFA 5 Адрес интерфейса
RTA_AUTHOR 0x40 RTAX_AUTHOR 6 Отправитель запроса на перенаправление
RTA_BRD 0x80 RTAX_BRD 7 Адрес получателя типа «точка-точка» или широковещательный
RTAX_MAX 8 Максимальное количество элементов

Перейти к странице:
Предыдущая страница
Следующая страница
Жанры
  • Военное дело
  • Деловая литература
  • Детективы и триллеры
  • Детские
  • Детские книги
  • Документальная литература
  • Дом и дача
  • Дом и Семья
  • Жанр не определен
  • Зарубежная литература
  • Знания и навыки
  • История
  • Компьютеры и Интернет
  • Легкое чтение
  • Любовные романы
  • Научно-образовательная
  • Образование
  • Поэзия и драматургия
  • Приключения
  • Проза
  • Прочее
  • Психология и мотивация
  • Публицистика и периодические издания
  • Религия и духовность
  • Родителям
  • Серьезное чтение
  • Спорт, здоровье и красота
  • Справочная литература
  • Старинная литература
  • Техника
  • Фантастика и фентези
  • Фольклор
  • Хобби и досуг
  • Юмор
Mir-knigi.online

Бесплатная онлайн библиотека для чтения книг без регистрации с телефона или компьютера. У нас собраны последние новинки, мировые бестселлеры книжного мира.

Контакты
  • [email protected]
Информация
  • Карта сайта
© mir-knigi.online, 2026. | Вход