
- •Программирование в локальных сетях с использованием почтовых слотов
- •1 Почтовые слоты
- •1.1 Имена почтовых ящиков
- •1.2 Размеры сообщений
- •1.3 Общие сведения об архитектуре клиент-сервер
- •1.4 Сервер почтовых ящиков
- •1.5 Клиент почтовых ящиков
- •1.6 Дополнительные api-функции почтовых ящиков
- •1.7 Неспособность отменить блокирующие запросы ввода-вывода
- •1.8 Утечки памяти
- •2 Задания на выполнение лабораторной работы.
- •3 Контрольные вопросы
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
ВЯТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
Факультет автоматики и вычислительной техники
Кафедра автоматики и телемеханики
Программирование в локальных сетях с использованием почтовых слотов
Методические указания по выполнению
лабораторной работы
Дисциплина “Локальные сети”
Специальность 071900, 210100, IV курс, дневное отделение
Киров 2005
Цель работы: познакомить студентов с основами реализации простого однонаправленного механизма межпроцессорной связи (interprocess communicatic., IPC), называемого почтовыми ящиками (mailslots).
1 Почтовые слоты
Сетевая технология, называемая почтовыми ящиками, основана на использовании компонентов файловой системы Windows, и доступна для использования в Microsoft Windows 95 и Windows 98.
Почтовые ящики позволяют клиентскому процессу передавать сообщения одному или нескольким серверным процессам. Они могут передавать сообщения между процессами на одном и том же компьютере или на разных компьютерах в сети. Разработка приложений, использующих почтовые ящики, не требует знания сетевых транспортных протоколов, таких как TCP/IP или SPX/IPX.
Почтовые ящики основаны на архитектуре широковещания, они не гарантируют надежной передачи данных, но полезны, когда доставка данных не является жизненно важной.
Основное ограничение почтовых ящиков: они допускают только ненадежную однонаправленную передачу данных от клиента к серверу.
Основное преимущество почтовых ящиков: клиентские приложения могут легко посылать широковещательные сообщения одному или нескольким серверным приложениям.
Почтовые ящики основаны на интерфейсе файловой системы Windows. Клиентское и серверное приложения используют стандартные функции ввода-вывода файловой системы Win32 (такие как ReadFile и WriteFile) для отправки и получения данных почтовым ящиком, а также правила именования файловой системы Win32.
1.1 Имена почтовых ящиков
Почтовые ящики именуются по следующему правилу:
\\сервер\Mailslot\[путь]имя
Строка состоит из трех частей: \\сервер, \Mailslot и \[path]name, где
сервер - имя сервера, на котором создается почтовый ящик и выполняется серверное приложение;
Mailslot - фиксированная обязательная строка;
[путь} имя — позволяет приложениям уникальным образом определять и идентифицировать имя почтового ящика.
В строке путь разрешается задавать несколько уровней каталогов. Например, допустимы следующие типы имен почтовых ящиков:
\\Oreo\Mailslot\Mymailslot
\\Testserver\Mailslot\Cooldirectory\Funtest\Anothermallslot
\\.\Mailslot\Easyniailslot
\\*\Mailslot\Myslot
Строка сервер может представлять собой точку (.), звездочку (*), имя домена или сервера.
Домен - это группа рабочих станций и серверов с общим групповым именем.
1.2 Размеры сообщений
Для передачи сообщений по сети почтовые ящики обычно используют дейтаграммы (datagram). Это ненадежный способ, поскольку уведомление о получении пакета данных не пересылается, и его доставка не гарантируется.
С помощью дейтаграмм можно передавать сообщения от одного клиента многим серверам, но этот механизм не работает на компьютерах с Windows NT или Windows 2000, если размер сообщения превышает 424 байта. На компьютерах с Windows NT и Windows 2000 сообщения размером более 426 байт передаются с использованием протокола, требующего установление соединения, а не дейтаграммами. В этом случае обеспечивается доставка данных только от одного клиента одному серверу, но их доставка гарантируется.