Книга: Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform
Применение обмена сообщениями
Теперь, когда мы рассмотрели базовые концепции обмена сообщениями и выяснили, что он используется даже в таких обычных повседневных вещах как библиотека языка Си, давайте рассмотрим кое-какие детали.
Архитектура и структура
Мы рассуждали о «клиентах» и «серверах». Я также использовал три ключевые выражения:
• «Клиент посылает (sends) сообщение серверу»;
• «Сервер принимает (receives) сообщение от клиента»;
• «Сервер отвечает (replies) клиенту».
Я преднамеренно использовал именно эти выражения, потому что они в точности соответствуют действительным именам функций, которые используются для передачи сообщений в QNX/Neutrino.
Ниже приводится (в алфавитном порядке) полный список функций QNX/Neutrino, относящихся к обмену сообщениями:
• ChannelCreate(), ChannelDestroy();
• ConnectAttach(), ConnectDetach();
• MsgDeliverEvent();
• MsgError();
• MsgRead(), MsgReadv();
• MsgRecieve(), MsgRecievePulse(), MsgRecievev();
• MsgReply(), MsgReplyv();
• MsgSend(), MsgSendc(), MsgSendsv(), MsgSendsvnc(), MsgSendvs(), MsgSendvsnc(), MsgSendv(), MsgSendvnc();
• MsgWrite(), MsgWritev().
Пусть вас не приводит в замешательство размер списка функций. Вы запросто сможете писать приложения «клиент/сервер», используя лишь небольшое подмножество этого списка, просто по мере углубления в детали вы поймете, что некоторые из вышеперечисленных функций могут оказаться очень полезными в определенных случаях.
Разобьем обсуждение на две части: отдельно обсудим функции, которые применяются на стороне клиента, и отдельно — те, что применяются на стороне сервера.
- Глава 2 Обмен сообщениями
- ЧАСТЬ 2 ОБМЕН СООБЩЕНИЯМИ
- Обмен сообщениями в сети
- Применение функции scanf( )
- Применение PHP-технологий в программе HtmlPad
- 17.6 Применение агентов новостей для настольных систем
- 2.3. Эмпирическая модель обучения Дэвида Колба и ее применение в практике бизнес-тренинга
- Распределенный обмен сообщениями
- Применение основного потока
- Применение пользовательских атрибутов
- Обмен сообщениями
- Буфер обмена и команды для работы с ним