Индустрия программирования


Одна из возможных конфигураций программных гнезд - часть 2


bind(sd, socknm, socknlen);

  • sd
    - дескриптор ранее созданного программного гнезда
  • socknm - адрес
    структуры, которая содержит имя (идентификатор) гнезда, соответствующее
    требованиям домена данного гнезда и используемого протокола
  • для домена системы UNIX имя является именем объекта в файловой
    системе
  • при создании программного гнезда создается файл
  • socknlen - длина
    в байтах структуры socknm

Запрос связи с существующим программным гнездом
со стороны процесса-клиента:

connect(sd, socknm, socknlen);

  • смысл параметров, как у функции bind
  • имя программного гнезда на другой стороне коммуникационного
    канала
  • у гнезда с дескриптором sd
    и у гнезда с именем socknm
    должны быть одинаковые домен и протокол
  • если тип гнезда с дескриптором sd
    - дейтаграммный, то connect
    служит для информирования системы об адресе назначения пакетов,
    которые в дальнейшем будут посылаться с помощью функции send

Информирования о том, что процесс-сервер планирует
установление виртуальных соединений через указанное гнездо:

listen(sd, qlength);

  • qlength
    - максимальная длина очереди запросов на установление соединения,
    которые должны буферизоваться системой, пока их не выберет процесс-сервер

Выборка процессом-сервером очередного запроса на
установление соединения с указанным программным гнездом служит
функция accept:
nsd = accept(sd, address, addrlen);

  • sd
    - дескриптор существующего программного гнезда, для которого ранее
    была выполнена функция listen
  • address
    - массив данных, в который должна быть помещена информация, характеризующая
    имя программного гнезда клиента
  • addrlen
    - адрес, по которому находится длина массива address
  • выполнение функции приводит к установлению виртуального
    соединения
  • nsd
    - новый дескриптор программного гнезда, который должен использоваться
    при работе через данное соединение
  • по адресу addrlen
    помещается реальный размер массива данных, которые записаны по
    адресу address

Передача и прием данных через программные гнезда
с установленным виртуальным соединением:



Начало  Назад  Вперед



Книжный магазин