17.4. Сокеты домена Unix
17.4. Сокеты домена Unix
Сокеты домена Unix — это простейшее семейство протоколов, доступное через API- интерфейс сокетов. Они фактически не являются сетевыми протоколами, поскольку могут соединяться с сокетами только на одном и том же компьютере. Несмотря на то что это значительно ограничивает их полезность, они все же используются многими приложениями благодаря гибкому механизму IPC, который они поддерживают. Их адреса — это путевые имена, которые создаются в файловой системе, когда сокет привязывается к путевому имени. Файлы сокетов, представляющие адреса доменов Unix, могут быть запущены функцией stat(), но не могут быть открыты с помощью open(); вместо этого нужно использовать API сокетов.
Домен Unix предусматривает как дейтаграммные, так и потоковые интерфейсы. Дейтаграммный интерфейс используется редко, и здесь обсуждаться не будет. Мы рассмотрим потоковый интерфейс, работа которого подобна именованным каналам. При этом сокеты домена Unix, однако, не идентичны именованным каналам.
Если несколько процессов одновременно открывают именованный канал, то любой из них может прочесть сообщение, передаваемое через канал другим процессом. Каждый канал похож на доску объявлений. Если процесс располагает сообщение на доске, то любой другой процесс (с достаточными полномочиями) может прочитать это сообщение с доски.
Сокеты домена Unix работают на основе соединений; в результате каждого соединения с сокетом возникает новый канал связи. Сервер, который может обрабатывать множество соединений одновременно, сохраняет для каждого из них свой файловый дескриптор. Благодаря этому свойству сокеты домена Unix лучше подходят для выполнения многих задач IPC, чем именованные каналы. Это главная причина, по которой они применяются большинством стандартных служб Linux, включал X Window System и системный регистратор.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
17.4.4. Запуск примеров домена Unix
17.4.4. Запуск примеров домена Unix Две предыдущие программы-примера (серверная и клиентская) сконструированы для совместной работы. Запустите сервер с одного терминала, после этого активизируйте клиента из другого терминала (но в том же самом каталоге). При вводе строк в
17.4.5. Неименованные сокеты домена Unix
17.4.5. Неименованные сокеты домена Unix Благодаря тому, что сокеты домена Unix обладают некоторыми преимуществами перед каналами (например, они являются полнодуплексными), они часто используются в качестве механизма IPC. Для того чтобы облегчить этот процесс, вводится
Регистрация домена
Регистрация домена В первую очередь необходимо определиться с доменной зоной. Если проект задуман для работы в Рунете, предпочтительно сделать выбор в пользу. ru. Домены типа. su, info, org также распространены, но в большей степени среди некоммерческих сайтов.Регистрация
Сокеты
Сокеты Сокеты предназначены для взаимодействия между процессами. Интерфейс сокетов часто используется для доступа к сети TCP/IP. В системах, ветви BSD UNIX на базе сокетов реализована система межпроцессного взаимодействия, с помощью которой работают многие системные сервисы,
Межпроцессное взаимодействие в BSD UNIX. Сокеты
Межпроцессное взаимодействие в BSD UNIX. Сокеты Разработчики системы межпроцессного взаимодействия BSD UNIX руководствовались рядом соображений:Во-первых, взаимодействие между процессами должно быть унифицировано, независимо от того, выполняются ли они на одном компьютере
Регистрация домена
Регистрация домена Чтобы заполучить собственный домен второго уровня, его нужно купить. В данном случае речь идет еще не о покупке дискового пространства, а о приобретении имени как такового. В принципе многие хостеры предлагают своим клиентам домены очень дешево или
Создание домена
Создание домена В качестве операционной системы, устанавливаемой на управляющей компьютер, будем использовать операционную систему Windows 2003 Server – одну из последних серверных операционных систем семейства Windows, зарекомендовавшую себя как устойчивую платформу,
7.2.6.5. Сокеты
7.2.6.5. Сокеты Сокеты (sockets) были разработаны в BSD-ветви Unix как способ инкапсуляции доступа к сетям данных. Две программы, осуществляющие обмен данными через сокет, обычно используют двунаправленный поток байтов (существуют и другие режимы сокетов и методы передачи, но они
7.4.2. Имя компьютера и домена
7.4.2. Имя компьютера и домена В файлах /proc/sys/kernel/hostname и /proc/sys/kernel/domainname содержатся имя компьютера и имя домена соответственно. Эту же информацию возвращает функция uname(), описанная в разделе 8.15, "Функция
Создание домена
Создание домена Синтаксис языка определения данных (DDL) для создания домена:CREATE DOMAIN домен [AS] <тип-данных>[DEFAULT литерам |NULL |USER][NOT NULL] [CHECK (<условие-поиска-домена>)][CHARSET набор-символов| NONE][COLLATE порядок-сортировки]; Идентификатор домена При создании в базе данных домена вы
Идентификатор домена
Идентификатор домена При создании в базе данных домена вы должны задать идентификатор домена, который является глобально уникальным в базе данных. Разработчики часто используют префикс или суффикс в идентификаторах доменов для улучшения документирования. Например:CREATE
Тип данных домена
Тип данных домена Tun данных является единственным обязательным атрибутом, который должен быть установлен для домена - все другие атрибуты необязательны. Он задает тип данных SQL, который будет применен для столбца, определенного с использованием этого домена. Может быть
Удаление домена
Удаление домена Оператор DROP DOMAIN удаляет из базы данных существующее описание домена при условии, что домен не используется в каком-либо описании столбца базы данных.Чтобы не получить исключений, применяйте ALTER TABLE для удаления всех столбцов, использующих домен, а затем
Unix-строки (чтение и запись Unix-файлов)
Unix-строки (чтение и запись Unix-файлов) Данный модуль позволяет читать и записывать файлы формата Unix.unit StreamFile;interfaceUses SysUtils;Procedure AssignStreamFile(var f: text; FileName: String);implementationConst BufferSize = 128;Type TStreamBuffer = Array[1..High(Integer)] of Char; TStreamBufferPointer = ^TStreamBuffer; TStreamFileRecord = Record Case Integer Of 1: ( Filehandle: Integer; Buffer: