Реферат: Прогон программы общения двух процессов через именованный канал > Функции почтовых ящиков (mailslot) Работа с почтовыми ящиками Заключение

⚡ 👉🏻👉🏻👉🏻 ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻
Функционирование и реализация именованных каналов и почтовых ящиков в Windows 2000/XP
Введение……………………………………………………………………3
1. Основная характеристика именованных каналов и почтовых ящиков…………………………………………………………………………….4
1.1. Именованные каналы………………………………………………..4
1.2. Почтовые ящики……………………………………………………..4
2. Реализация функций именованных каналов и почтовых ящиков……………………………………………………………………………6
2.1. Организация соединения с помощью именованного канала……6
2.2. Использование именованных каналов……………………………8
2.2.1. Прогон программы общения двух процессов через именованный канал………………………………………………………………………………8
2.3. Функции почтовых ящиков (mailslot)…………………………….10
2.3.1. Работа с почтовыми ящиками………………………………12
Заключение……………………………………………………………….15
Список используемой литературы……………………………………16
Из курса «операционные системы» известно, что для выполнения таких задач, как совместное использование данных, построение интегрированных многофункциональных приложений и т.д., различным процессам (а также различным потокам) необходимо взаимодействовать между собой. Поскольку процессы изначально задумывались как обособленные сущности, для обеспечения корректного взаимодействия процессов требуются специальные средства и действия операционной системы.
Известно также, что в основе межпроцессного (Inter Process Communications, IPC) обмена обычно находится разделяемый ресурс (например, канал или сегмент разделяемой памяти), и, следовательно, ОС должна предоставить средства для генерации, именования, установки режима доступа и атрибутов защиты таких ресурсов. Обычно такой ресурс может быть доступен всем процессам, которые знают его имя и имеют необходимые привилегии.
Цель – изучение функционирования и реализации именованных каналов и почтовых ящиков в среде Windows.
Для достижения цели необходимо решить несколько задач:
- рассмотреть характеристики именованных каналов и почтовых ящиков;
- рассмотреть организацию соединения с помощью именованного канала;
- рассмотреть основные функции почтовых ящиков и именованных каналов;
- изучить работу с почтовыми ящиками.
Реферат состоит из введения, основной части. Заключения и списка использованной литературы. Объем работы 16 стр.
Именованные каналы предоставляют абстрактный и удобный сетевой интерфейс. Вместо того чтобы иметь дело с маршрутизацией и пересылкой данных, программист, использующий именованные каналы, может просто открыть канал и поместить в него данные. Пользователь именованного канала открывает его и считывает данные. Передача данных между компьютерами выполняется автоматически и один вызов именованного канала эквивалентен нескольким операциям на уровне транспорта.
Именованные каналы являются объектами ядра ОС Windows, которые позволяют организовать межпроцессный обмен не только в изолированной вычислительной системе, но также и в локальной сети.
Они обеспечивают дуплексную связь и позволяют использовать как потоковую модель, так и модель, ориентированную на сообщения. Обмен данными может быть как синхронным так и асинхронным.
Почтовые ящики обеспечивают только лишь однонаправленные соединения. Каждый процесс, который создает почтовый ящик, является «сервером почтовых ящиков» (mailslot server). Другие процессы, называемые «клиентами почтовых ящиков» (mailslot clients), посылают сообщения серверу, записывая их в почтовый ящик. Входящие сообщения всегда дописываются в почтовый ящик и сохраняются до тех пор, пока сервер их не прочтет. Каждый процесс может одновременно быть и сервером, и клиентом почтовых ящиков, создавая, таким образом, двунаправленные коммуникации между процессами.
Клиент может посылать сообщения на почтовый ящик, расположенный на том же компьютере, на компьютере в сети, или на все почтовые ящики с одним именем всем компьютерам выбранного домена. При этом широковещательное сообщение, транслируемое по домену, не может быть более 400 байт. В остальных случаях размер сообщения ограничивается только при создании почтового ящика сервером.
2.
Реализация функций именованных каналов и почтовых ящиков.
Все функции именованных каналов и почтовых ящиков реализованы в DLL клиентской части подсистемы Win32 - kernel32.dll. Однако имена, задаваемые приложениями, использующими именованные каналы и почтовые ящики, определяют системное пространство имен, управляемое драйвером файловой системы именованных каналов (Named Pipes File System, NPFS.sys) и драйвером файловой системы почтовых ящиков (Mail Slots File System, MSFS.sys). Драйвер файловой системы именованных каналов создает объект-устройство, называемое «\Device\NamedPipe», и символическую ссылку к этому объекту, называемую «\??\Pipe», а драйвер файловой системы почтовых ящиков создает объект-устройство, называемое \Device\Mailslot, и символическую ссылку \??\Mailslot, указывающую на этот объект. Имена, передаваемые функции CreateFile вида «\Y\Pipe\....» и «\V\Mailslot\....», имеют префикс «\\.\», преобразуемый в «\??\», так что имена разрешаются через символическую ссылку к объекту-устройству.
2.1.
Организация соединения с помощью именованного канала
Именованные каналы, как уже было сказано, используются для передачи данных между независимыми процессами или между процессами, работающими на разных компьютерах.
Как правило, процесс сервера именованных каналов создает именованный канал с известным именем или с именем, которое будет передано клиентам. Процесс клиента именованных каналов, зная имя созданного канала, открывает его на своей стороне с учетом ограничений, указанных процессом сервера. После этого между сервером и клиентом создается соединение, по которому может производиться обмен данными в обоих направлениях. В дальнейшем наибольший интерес будут представлять именованные каналы.
При создании и получении доступа к существующему каналу необходимо придерживаться следующего стандарта имен каналов: «\\.\pipe\pipename».
Если канал находится на удаленном компьютере, то потребуется NETBIOS-имя компьютера: «\\ComputerName\pipe\pipename».
Клиентам и серверам для работы с каналами допускается использовать функции из табл. 1.
Кроме того, для работы с каналами используется функция CreateFile (для подключения к каналу со стороны клиента) и функции WriteFile и ReadFile для записи и чтения данных в/из канала соответственно.
Выполняет подключение к каналу, записывает в канал сообщение, считывает из канала сообщение и затем закрывает канал
Позволяет серверу именованных каналов ожидать подключения одного или нескольких клиентских процессов к экземпляру именованного канала
Создает экземпляр именованного канала и возвращает дескриптор для последующих операций с каналом
Отсоединяет серверную сторону экземпляра именованного канала от клиентского процесса
Получает информацию о работе указанного именованного канала
Извлекает свойства указанного именованного канала
Копирует данные их именованного или безымянного канала в буфер без удаления их из канала
Устанавливает режим чтения и режим блокировки вызова функций (синхронный или асинхронный) для указанного именованного канала
Комбинирует операции записи сообщения в канал и чтения сообщения из канала в одну сетевую транзакцию
Ожидает, пока истечет время ожидания или пока экземпляр указанного именованного канала не будет доступен для подключения к нему
2.2.
Использование именованных каналов
Сервер создает именованный канал при помощи функции CreateNamedPipe.
Помимо имени канала в форме, описанной выше, в число параметров функции входят: флаг, указывающий модель передачи данных; параметр, определяющий синхронный или асинхронный режим работы канала, а также указывающий, должен ли канал быть односторонним или двухсторонним. Кроме того, имеется необязательный дескриптор защиты, запрещающий несанкционированный доступ к именованному каналу, и параметр, определяющий максимальное число одновременных соединений по данному каналу.
Повторно вызывая CreateNamedPipe, можно создавать дополнительные экземпляры этого же канала.
После вызова CreateNamedPipe сервер выполняет вызов ConnectNamedPipe и ждет отклика от клиентов, которые соединяются с каналом при помощи функции CreateFile или CallNamedPipe, указывая при вызове имя созданного сервером канала. Легальный клиент получает описатель, представляющий клиентскую сторону именованного канала, и работа серверной функции ConnectNamedPipe на этом завершается.
После того как соединение по именованному каналу установлено, клиент и сервер могут использовать его для чтения и записи данных через Win32-функции ReadFile и WritePile.
2.2.1.
Прогон программы общения двух процессов через именованный канал
Рассмотрим осуществление прогона программы общения клиента и сервера через именованный канал.
LPTSTR PipeName = TEXT("\\\\.\\pipe\\MyPipe");
ZeroMemory(&SI, sizeof(STARTUPINFO));
ZeroMemory(&piProcInfo, sizeof(piProcInfo));
PIPE_ACCESS_DUPLEX, // чтение и запись из канала
PIPE_TYPE_MESSAGE | // передача сообщений по каналу
PIPE_READMODE_MESSAGE | // режим чтения сообщений
PIPE_WAIT, // синхронная передача сообщений
PIPE_UNLIMITED_INSTANCES, // число экземпляров канала
NMPWAIT_USE_DEFAULT_WAIT, // тайм-аут клиента
printf("CreatePipe failed: error code %d\n", (int)GetLastError());
if((CreateProcess(NULL, ClientName, NULL, NULL, FALSE, 0, NULL, NULL, &SI, &piProcInfo))==0)
printf("create client process: error code %d\n", (int)GetLastError());
if((ConnectNamedPipe(hPipe, NULL))==0)
printf("client could not connect\n");
ReadFile(hPipe, Buff, iNumBytesToRead, &iNumBytesToRead, NULL);
for(i=0; i Функции почтовых ящиков (mailslot) Работа с почтовыми ящиками Заключение
Раздел: Остальные рефераты
Тип: реферат
Добавлен 08:53:48 30 сентября 2011 Похожие работы
Просмотров: 181
Комментариев: 7
Оценило: 1 человек
Средний балл: 3
Оценка: неизвестно Скачать
Срочная помощь учащимся в написании различных работ. Бесплатные корректировки! Круглосуточная поддержка! Узнай стоимость твоей работы на сайте 64362.ru
Привет студентам) если возникают трудности с любой работой (от реферата и контрольных до диплома), можете обратиться на FAST-REFERAT.RU , я там обычно заказываю, все качественно и в срок) в любом случае попробуйте, за спрос денег не берут)
Да, но только в случае крайней необходимости.
Реферат: Прогон программы общения двух процессов через именованный канал > Функции почтовых ящиков (mailslot) Работа с почтовыми ящиками Заключение
Сочинение: Образ города в произведениях А.Н. Островского Гроза и Бесприданница
Реферат: Объединение русских земель в Литовском государстве в XIII - XVI вв
Курсовая работа по теме Информационная система жилищного кооператива
Реферат по теме Безумие
Сочинение На Тему Почему Лиза Бедная
Курсовая Работа На Тему Стратегии Маркетинга В Сфере Услуг
Реферат по теме Комбинированное действие солей тория, свинца и гамма-излучения на мужские половые клетки лабораторных мышей
Реферат На Тему Бег 1000 М
Дипломная работа: Автоматизированная система бально-рейтинговой оценки успеваемости студентов. Скачать бесплатно и без регистрации
Темы Курсовых Сестринское Дело В Педиатрии
Курсовая работа по теме Туризм в Крыму
Реферат На Тему Рациональные Приёмы Работы С Литературными Источниками
Курсовая работа: Обеспечение и способы исполнения обязательств
Реферат: Индуктотермия Аппараты для дарсонвализации и терапии током надтональной частоты. Скачать бесплатно и без регистрации
Окружающий Мир 2 Класс Реферат Правильное Питание
Реферат: Картины мира
Коммерческие банки в рыночной экономике
Реферат по теме Общие принципы организации обучения переводу
Статья: Песчанская икона Божией Матери
Реферат: Установка и ее влияние на спортивные результаты. Скачать бесплатно и без регистрации
Реферат: Битва под Москвой
Статья: Экспертная оценка отставания в психическом развитии, не связанного с психическим расстройством (методические рекомендации)
Реферат: Атеросклероз. Стеноз подвздошных артерий II ст.