Книга: Разработка приложений в среде Linux. Второе издание

17.1.4. Адреса

17.1.4. Адреса

Поскольку каждый протокол поддерживает собственное определение сетевого адреса, интерфейс сокетов должен абстрагировать адреса. В качестве базовой формы адреса используется структура struct sockaddr; его содержимое устанавливается по-разному для каждого семейства адресов. Передавая struct sockaddr в системный вызов, процесс также указывает размер передаваемого адреса. Тип socklen_t определяется как число, достаточно большое для хранения размера любого сокета, который используется системой.

Все типы struct sockaddr соответствуют приведенному ниже определению.

#include <sys/socket.h>
struct sockaddr {
 unsigned short sa_family;
 char sa_data[MAXSOCKADDRDATA];
}

Первые два байта (размер short) указывают семейство адресов, к которому относится данный адрес. Перечень стандартных адресных семейств, используемых приложениями Linux, приведен в табл. 17.1.

Таблица 17.1. Семейства протоколов и адресов

Адрес Протокол Описание протокола
AF_UNIX PF_UNIX Домен Unix.
AF_INET PF_INET TCP/IP (версия 4).
AF_INET6 PF_INET6 TCP/IP (версия 6).
AF_AX25 PF_AX25 AX.25, используется радиолюбителями.
AF_IPX PF_IPX Novell IPX.
AF_APPLETALK PF_APPLETALK AppleTalk DDS.
AF_NETROM PF_NETROM NetROM, используется радиолюбителями.

Оглавление книги


Генерация: 0.132. Запросов К БД/Cache: 2 / 0
поделиться
Вверх Вниз