ОБЗОР
#include <sys/socket.h>
#include <linux/x25.h>
x25_socket = socket(AF_X25, SOCK_SEQPACKET, 0);
ОПИСАНИЕ
Сокеты X25 предоставляют интерфейс для пакетного слоя протокола X.25. Это
позволяет приложениям связываться через открытые сети передачи данных X.25 в
соответствии с рекомендациями Международного Телекоммуникационного Общества
(International Telecommunication Union) по X.25 (режим X.25 DTE-DCE). Сокеты
X25 также можно использовать для связи без наличия промежуточной сети X.25
(режим X.25 DTE-DTE) как описано в стандарте ISO-8208.
При работе выполняется сохранение границ сообщения --- вызов read(2) вернёт кусок данных той же величины, что записала в сокет в помощью write(2) сторона-партнёр. Когда это необходимо, ядро следит за сегментированием и перебирает (reassembling) длинные сообщения руководствуясь появлением бита M в X.25. Не существует жёсткого ограничения на максимальный размер сообщения. Однако, переборка длинного сообщения может закончиться неудачно, если возникнет временная нехватка системных ресурсов или когда включатся другие ограничения (например, на память сокета или размер буфера). Если возникает такая ситуация, то соединение X.25 разрывается.
Адреса сокетов
Для представления сетевого адреса в семействе адресов сокета AF_X25 используется структура struct sockaddr_x25, которая описана в рекомендации ITU-T X.121.
struct sockaddr_x25 { sa_family_t sx25_family; /* должно быть AF_X25 */ x25_address sx25_addr; /* адрес X.121 */ };
В sx25_addr содержится массив символов x25_addr[], который интерпретируется как строка, завершающаяся null. Значение sx25_addr.x25_addr[] содержит до 15-ти (не считая завершающего байта null) ASCII, из которых формируется адрес X.121. Разрешаются только десятичные цифры от «0» до «9».
Параметры сокета
Специальные параметры сокета X.25 могут быть установлены с помощью setsockopt(2) и прочитаны с помощью getsockopt(2), если в аргументе level указать значение SOL_X25:X25_QBITINCL Управляет доступностью пользователю бита Q в X.25 (Qualified Data Bit — бит пригодности данных). В качестве аргумента указывается целое число. Если указан 0 (по умолчанию), то бит Q никогда не устанавливается в исходящих пакетах, а во входящих бит Q игнорируется. Если указана 1, то каждое прочитываемое или записываемое в сокет сообщение предваряется дополнительным байтом. Для данных, которые читаются из сокета, нулевой первый байт говорит означает, что биты Q в соответствующих входящих пакетах данных не установлены. Если первый байт имеет значение 1, то это говорит о том, что в соответствующих входящих пакетах данных установлены биты Q. Если первый байт данных, записанный в сокет, имеет значение 1, то для соответствующих исходящих пакетов данных будет установлен бит Q. Если первый байт имеет значение 0, то бит Q установлен не будет.
ВЕРСИИ
Семейство протоколов AF_X25 впервые реализовано в Linux 2.2.ДЕФЕКТЫ
Имеются в наличии, так как реализация PLP X.25 помечена как CONFIG_EXPERIMENTAL.Данная справочная страница не полна.
Пока не существует заголовочных файлов, предназначенных для использования в приложениях; вам необходимо включать заголовочный файл ядра <linux/x25.h>. CONFIG_EXPERIMENTAL также может неявно означать, что будущие версии данного интерфейса не будут двоично совместимы.
События X.25 N-Reset пока не передаются пользовательскому процессу. Поэтому, если случится сброс соединения, данные могут быть потеряны без уведомления.