Троан Эрик В.
Шрифт:
Клиент не особенно отличается от сервера. Единственные изменения состоят в том, что последовательность функций
17.4.4. Запуск примеров домена Unix
Две предыдущие программы-примера (серверная и клиентская) сконструированы для совместной работы. Запустите сервер с одного терминала, после этого активизируйте клиента из другого терминала (но в том же самом каталоге). При вводе строк в клиентской программе они автоматически передаются через сокет на сервер. После того, как вы завершите работу клиента, сервер будет ожидать следующего соединения. Вы можете передавать файлы через сокет путем переадресации входных данных в клиентскую программу.
17.4.5. Неименованные сокеты домена Unix
Благодаря тому, что сокеты домена Unix обладают некоторыми преимуществами перед каналами (например, они являются полнодуплексными), они часто используются в качестве механизма IPC. Для того чтобы облегчить этот процесс, вводится системный вызов
Первые три параметра совпадают с теми, которые передаются в
Пример применения
17.4.6. Передача файловых дескрипторов
Сокеты домена Unix обладают уникальным свойством: через них могут передаваться файловые дескрипторы. Ни один из прочих механизмов IPC не поддерживает подобную возможность. Она позволяет процессу открыть файл и передать файловый дескриптор в другой (возможно, несвязанный) процесс. Все проверки доступа выполняются при открытии файла, поэтому получающий процесс приобретает те же самые права доступа к файлу, что и исходный процесс.
Файловые дескрипторы передаются как часть более сложного сообщения, которое отправляется с помощью системного вызова
Параметр
Сообщение описывается показанной ниже структурой.
Первые два члена
Два элемента, которые мы пропустили,
Размер управляющего сообщения, включая заголовок, хранится в переменной
125
Это иногда называется передачей прав доступа.