Студопедия

Главная страница Случайная лекция


Мы поможем в написании ваших работ!

Порталы:

БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика



Мы поможем в написании ваших работ!




Средства организации анонимных и именованных каналов в Windows

Читайте также:
  1. I. РЕКОМЕНДАЦИИ ПО ОРГАНИЗАЦИИ САМОСТОЯТЕЛЬНОЙ РАБОТЫ
  2. II. 50-е годы. Роль взрослого в организации игры ребенка.
  3. II. Тип организации верховной власти в государстве (форма государственного правления).
  4. IV. Некоммерческие организации.
  5. Аварийно-спасательные средства.
  6. Админ методы оперативного упр-я персоналом организации.
  7. Администраторство и лидерство в системе менеджмента организации
  8. Анализ динамики состава и структуры имущества организации
  9. Анализ ликвидности и платежеспособности организации
  10. Анализ обеспеченности предприятия основными средствами производства, интенсивности и эффективности их использования.

Анонимные каналы в Windows – это полудуплексное средство потоковой передачи байтов между процессами, функционирующими в пределах одной локальной ЭВМ.

Анонимные каналы создаются процессом-сервером с помощью функции CreatePipe, которая имеет четыре параметра:

1. Описатель канала для чтения;

2. Описатель для записи;

3. Атрибуты безопасности канала;

4. Размер канала.

В результате выполнения, данная функция возвращает первые два описателя. После выполнения этой функции, клиентскому процессу необходимо передать оба этих дескриптора, либо один из них, что обычно делается с помощью средств наследования процессов.

Для наследования дескриптора нужно, чтобы клиентский процесс создавался бы функцией CreateProcess с флагом наследования, имеющим значение «истина». Получив нужный описатель, клиентский процесс, также как и процесс-сервер, может взаимодействовать с каналом, используя функции ReadFile, WriteFile. По окончании работы с каналом, оба процесса должны закрыть описатели канала с помощью функции CloseHandle.

Именованные каналы, в отличие от анонимных, являются объектами ядра ОС, позволяющими организовать межпроцессный обмен не только в пределах локальной ЭВМ, но и в сети. Они обеспечивают дуплексную связь, и позволяют использовать передачу данных как потоком байтов, так и передачу с помощью сообщений. Обмен может быть как синхронным, так и асинхронным.

Каналы должны иметь уникальные в пределах сети имена, построенные по правилам именования ресурсов в сетях Windows, например, \\ServerName\pipe\PipeName - для сети, а для локальной машины - \\.\pipe\PipeName.

Именованный канал создается сервером с помощью системной функции CreateNamedPipe, у которой шесть параметров:

1. Имя канала с учетом упомянутых выше правил;

2. Способ передачи данных – потоковый или сообщениями;

3. Режим работы – синхронный или асинхронный;

4. Вид канала – односторонний или двусторонний;

5. Дескриптор защиты канала, запрещающий несанкционированный доступ к именованному каналу;

6. Максимальное число одновременных соединений по данному каналу.

При повторном вызове данной функции могут быть созданы дополнительные реализации одного и того же канала. После вызова данной функции, сервер выполняет вызов функции ConnectNamedPipe, после чего ожидает отклика от клиентов. Клиенты соединяются с каналом с помощью функции CreateFile или CallNamedPipe, указывая при вызове имя созданного сервером канала.

Клиент, имеющий право на работу с каналом, получает описатель, представляющий клиентскую сторону именованного канала, после чего работа серверной функции ConnectNamedPipe завершается. Её результатом является установление связи по именованному каналу. Начиная с этого момента, сервер и клиент могут выполнять обмен данными с помощью функций WriteFile, ReadFile. По окончании обмена, канал закрывается – CloseFile.

Помимо указанных функций в системе имеется еще несколько функций для работы с каналами, например, функция PeekNamedPipe. Она используется для копирования данных из именованного канала без удаления их из канала.

TransactNamedPipe – применяется для объединения операций чтения и записи в канал в одну операцию, которая называется транзакцией.


<== предыдущая страница | следующая страница ==>
Обмен данными через программные каналы | Концепция почтовых ящиков

Дата добавления: 2014-10-10; просмотров: 348; Нарушение авторских прав




Мы поможем в написании ваших работ!
lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.003 сек.