клиента,
чтобы определить, требуется ли
действительно взаимодействовать с
клиентом. Вызов accept
создает новый сокет для взаимодействия
с клиентом и возвращает соответствующий
дескриптор файла. Оригинальный сокет
сервера продолжает принимать новые
клиентские соединения. Для чтения
данных из сокета, без удаления их из
входной очереди, используется команда
recv .
В качестве
параметров передаются теже аргументы,
что и в команде read
, плюс дополнительный параметр
FLAGS . Флаг
MSG_PEEK
указывает, что данные должны быть
прочитаны, но не удалены из входной
очереди.
Локальные сокеты
Сокеты,
подключающие процессы на одном компьютере
могут использовать локальное пространство
имен, представляющий собой синоним для
PFJLOCAL и
PF_UNIX
. Они называются локальными сокетами
или сокетами UNIX-домена.
Адреса этих сокетов, определяемые
именами файлов, используются только
при создании соединения. Имя сокета
указывается в структуре sockaddr_un
. Если в AF_LOCAL
установлено поле sun_family
, это указывает на то, что адрес в
локальном пространстве имен. Поле
Sun_path
указывает, что используется имя
файла; максимальная длина поля - 108 байт.
Для вычисления длины struct
sockaddr_un
используется макрокоманда SUN_LEN
, Может использоваться любое имя
файла, но для процесса должно быть
установлено право на запись в каталог.
Чтоб соединениться с сокетом, процесса
должен иметь право на чтения файла.
Хотя различные компьютеры могут
совместно использовать одну файловую
систему, только процессы, запущенные
на этом компьютере, могут взаимодействовать,
используя сокеты локального пространства
имен.
Вывод:
в ходе лабораторной работы были получены
теоретические навыки по работе с
сокетами.