Mailslot

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Маилслот — один из механизмов межпроцессного взаимодействия, обеспечивающий однонаправленную передачу информации и позволяющий производить широковещательную рассылку сообщений по сети.

Реализация [править]

Маилслот является клиент-серверным интерфейсом. Сервер маилслотов — процесс, который создаёт маилслот и может читать из него информацию. Маилслот существует до тех пор, пока не закрыты все его серверные дескрипторы. Если несколько серверных процессов внутри домена создадут маилслоты с одинаковым именем, то сообщения, адресованные этому маилслоту и посылаемые в домен, будут приниматься всеми создавшими его процессами. Клиентом маилслота может быть любой процесс, знающий его имя. Клиент записывает в маилслот сообщения для передачи их посредством дейтаграмм серверу. Один и тот же процесс может быть одновременно клиентом и сервером маилслотов.

Для создания маилслотов используется специальное пространство имён «\\.\mailslot\[путь]имя». Для записи информации в маилслот на локальном компьютере клиентом используется то же самое имя, что использовалось сервером для создания маилслота. Для записи информации в маилслот удалённого компьютера используется форма «\\имя компьютера\mailslot\[путь]имя». Для записи информации во все маилслоты домена указывается имя домена или звёздочка, обозначающая первичный домен системы: «\\имя домена\mailslot\[путь]имя» или «\\*\mailslot\[путь]имя».

Для создания маилслота сервером используется специальная функция Windows API CreateMailslot. Для создания дескриптора маилслота клиентом, записи информации клиентом, чтения её сервером и закрытия дескриптора используются функции для работы с файлами CreateFile, WriteFile, ReadFile, CloseHandle.

Некоторые программы, использующие маилслоты:

  • MAILSLOT\Messngr — Microsoft NET SEND Protocol
  • MAILSLOT\Browse — Microsoft Browser Protocol
  • MAILSLOT\Alerter
  • MAILSLOT\53cb31a0\UnimodemNotifyTSP
  • MAILSLOT\HydraLsServer — Microsoft Terminal Services Licensing
  • MAILSLOT\CheyenneDS — CA BrightStor Discovery Service

Ссылки [править]