Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Обмен сообщений между приложениями, синхронизация / 17 сообщений из 17, страница 1 из 1
21.03.2012, 13:45
    #37715687
Капюшон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен сообщений между приложениями, синхронизация
Форумчане, подскажите,

Есть два разных приложения (exe-файлы). (Речь об ОС Windows) Нужно, чтобы они передавали друг другу информацию.
Например, представим, что это два видеоплеера, проигрывающих видео с разных камер. Когда на одном (главном) плеере нажата кнопка “пауза”, другой должен об этом узнать и тоже остановиь показ. И т.п.
Как это в принципе сделать? Буду благодарен за любые наводки.
Знаю только про Microsoft Messaging Queue, возможно, остановлюсь на нем, но может есть способы лучше или проще?
...
Рейтинг: 0 / 0
21.03.2012, 18:12
    #37716421
Капюшон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен сообщений между приложениями, синхронизация
Конкретизирую задачу. Первое приложение написано на С++ (unmanaged). Второе — C#.
...
Рейтинг: 0 / 0
22.03.2012, 00:56
    #37717022
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен сообщений между приложениями, синхронизация
Капюшон,

Я аналогичную задачу решал с помощью UDP multicast. Именно мультикаст. Не путать с просто UDP.
...
Рейтинг: 0 / 0
22.03.2012, 06:25
    #37717111
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен сообщений между приложениями, синхронизация
КапюшонКонкретизирую задачу. Первое приложение написано на С++ (unmanaged). Второе — C#.Это как раз фиолетово.
Механизмов вагон и маленькая тележка

Udp,tcp, именованые каналы, мэйлслоты, разделяемая память, COM, сообщения windows, DDE,файлы на диске в конце концов

Задача с плейрами -конкретная или просто для примера?
...
Рейтинг: 0 / 0
22.03.2012, 11:03
    #37717390
Капюшон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен сообщений между приложениями, синхронизация
Задача с плеерами — очень близка к конкретной.
Рассматриваю также Shared memory... хочется найти что-то относительно простое и быстрое...
...
Рейтинг: 0 / 0
22.03.2012, 20:24
    #37718748
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен сообщений между приложениями, синхронизация
...
Рейтинг: 0 / 0
22.03.2012, 21:06
    #37718791
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен сообщений между приложениями, синхронизация
Капюшон,

а оно всё достачно простое.
...
Рейтинг: 0 / 0
22.03.2012, 21:47
    #37718830
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен сообщений между приложениями, синхронизация
ИзопропилКапюшон,

а оно всё достачно простое.
Точно. Особенно, если не произносить вслух, а то язык можно сломать. :)
...
Рейтинг: 0 / 0
22.03.2012, 22:27
    #37718877
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен сообщений между приложениями, синхронизация
забыли, кстати, что можно ещё в реестр гадить и СУБД использовать :)
...
Рейтинг: 0 / 0
23.03.2012, 13:16
    #37719945
Капюшон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен сообщений между приложениями, синхронизация
Реестр, СУБД, файлы здесь не подойдут, надо, чтобы сообщение достаточно быстро доходило...
UDP multicast, кстати, представляется хорошим способом...
...
Рейтинг: 0 / 0
23.03.2012, 19:04
    #37720657
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен сообщений между приложениями, синхронизация
КапюшонСУБД, файлы здесь не подойдут
это смотря как готовить. Если подписаться на изменения - задержки не будет.
...
Рейтинг: 0 / 0
23.03.2012, 19:41
    #37720713
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен сообщений между приложениями, синхронизация
ИзопропилКапюшонСУБД, файлы здесь не подойдут
это смотря как готовить. Если подписаться на изменения - задержки не будет.
И какое событие, при изменении чего-то в базе, мы получаем на клиента?
...
Рейтинг: 0 / 0
23.03.2012, 21:30
    #37720836
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен сообщений между приложениями, синхронизация
ShSerge,

достаточно доходчивая презентация - http://www.oraclebi.ru/files/presentations/imelnikov/ChangeNotification.pdf
(Oracle - просто пример)
...
Рейтинг: 0 / 0
27.03.2012, 18:31
    #37725998
Капюшон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен сообщений между приложениями, синхронизация
Форумчане,

А что по-вашему мнению больше подойдет для обмена сообщениями (командами) в данном случае: TCP или UDP?
Никаких данных пересылаться не будет, только короткие команды, которые, фактически, генерирует пользователь.
...
Рейтинг: 0 / 0
27.03.2012, 19:22
    #37726099
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен сообщений между приложениями, синхронизация
Капюшон,

UDP
...
Рейтинг: 0 / 0
28.03.2012, 17:39
    #37728019
kolobok0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен сообщений между приложениями, синхронизация
Капюшон...обмена сообщениями (командами) в данном случае: TCP или UDP?...

если есть логика подтверждения прохождения команды - то целесообразней UDP. Если нет - то однозначно TCP. Это если Вам надо без ошибок команды передавать. Если пропадание команд рояли не играет - UDP.

удачи вам
(круглый)
...
Рейтинг: 0 / 0
16.04.2012, 21:37
    #37756155
Пётр Седов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен сообщений между приложениями, синхронизация
2 Капюшон:

КапюшонЕсть два разных приложения (exe-файлы). (Речь об ОС Windows) Нужно, чтобы они передавали друг другу информацию.
В Windows, самый простой способ меж-процессного взаимодействия -- это оконное сообщение WM_COPYDATA, оно позволяет пересылать данные произвольного размера. С него лучше и начать, и только если не устроит скорость работы, переходить на более сложные способы (например, socket-ы).

КапюшонНикаких данных пересылаться не будет, только короткие команды, которые, фактически, генерирует пользователь.
Если так, то возможно получится обойтись обычными оконными сообщениями (см. функции PostMessage, SendMessage), за раз можно передать 64 бита (в wParam/lParam). Причём даже не обязательно использовать функцию RegisterWindowMessage, достаточно просто определить константы вида WM_USER + my_message_id.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Обмен сообщений между приложениями, синхронизация / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]