Книга: Разработка приложений в среде 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, используется радиолюбителями. |
- Глава 2 Обнаружение адреса
- 5.21 IP-адреса, интерфейсы и множественное пребывание
- 3.6.1. Адресация в Linux
- 4.12.2. Переадресация
- Логика «от адресата»
- Обман MAC-адреса
- Глава 3 Как сразу «зацепить» адресата – начало
- Универсальная структура адреса сокета
- 1.3. Анонимные прокси-серверы: сокрытие IP-адреса и местонахождения
- 20.2. Широковещательные адреса
- 1.2. Анонимайзеры: сокрытие IP-адреса
- 2.1. Адреса электронной почты