Книга: UNIX: разработка сетевых приложений
Новая универсальная структура адреса сокета
Новая универсальная структура адреса сокета
Новая универсальная структура адреса сокета была определена как часть API сокетов IPv6 с целью преодолеть некоторые недостатки существующей структуры sockaddr
. В отличие от структуры sockaddr
, новая структура sockaddr_storage
достаточно велика для хранения адреса сокета любого типа, поддерживаемого системой. Новая структура задается подключением заголовочного файла <netinet/in.h>
, часть которого показана в листинге 3.4.
Листинг 3.4. Структура хранения адреса сокета sockaddr_storage
struct sockaddr_storage {
uint8_t ss_len; /* длина этой структуры (зависит от реализации) */
sa_family_t ss_family; /* семейство адреса. AF_xxx */
/* зависящие от реализации элементы, обеспечивающие:
а) выравнивание, достаточное для выполнения требований по выравниванию всех
типов адресов сокетов, поддерживаемых системой;
б) достаточный объем для хранения адреса сокета любого типа,
поддерживаемого системой. */
};
Тип sockaddr_storage
— это универсальная структура адреса сокета, отличающаяся от struct sockaddr
по следующим параметрам:
1. Если к структурам адресов сокетов, поддерживаемым системой, предъявляются требования по выравниванию, структура sockaddr_storage
выполняет самое жесткое из них.
2. Структура sockaddr_storage
достаточно велика для размещения любой структуры адреса сокета, поддерживаемой системой.
Заметьте, что поля структуры sockaddr_storage
непрозрачны для пользователя, за исключением ss_family
и ss_len
(если таковые заданы). Структура sockaddr_storage
должна преобразовываться в структуру адреса соответствующего типа для обращения к содержимому остальных полей.
- Универсальная структура адреса сокета
- 3.2. Структуры адреса сокетов
- Глава 4 Структура преобразования
- Структура адреса сокета IPv6
- Сравнение структур адреса сокетов
- Ценовая эластичность и чувствительность к цене
- СТРУКТУРА ПРОСТОЙ ПРОГРАММЫ
- Физическая структура базы данных
- Логическая структура базы данных InterBase
- Оптимальная структура хранения записей
- Новая структура данных на диске: ODS11
- Ценовая сегментация ассортимента