Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Обмен данными между программами / 9 сообщений из 9, страница 1 из 1
15.11.2014, 17:52
    #38807119
S70
S70
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен данными между программами
Коллеги,

день добрый. Подскажите, плиз, как решать такую задачу. Есть две программы на С++. Работают одновременно. Каждая из них что-то делает с данными. Как реализовать функционал по прямому обмену данными между ними (т.е. без промежуточных файлов и т.п.)? Вопрос синхронизации – не стоит. Просто обмен данными.

Спасибо
...
Рейтинг: 0 / 0
15.11.2014, 18:10
    #38807130
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен данными между программами
InterProcess Communication это называется и может осуществляться кучей различных способов
от посылки Windows Messages до использования TCP/IP (UDP).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
17.11.2014, 03:06
    #38807754
S70
S70
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен данными между программами
Dimitry Sibiryakov,

спасибо, посмотрел. А когда какая-то программа предоставляет API, это делается через InterProcess Communication?
...
Рейтинг: 0 / 0
17.11.2014, 05:05
    #38807771
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен данными между программами
Есть разные способы "предоставить API".
Можно экспортировать нужные функции, можно реализовать сервис для общения через IPC.
...
Рейтинг: 0 / 0
17.11.2014, 14:18
    #38808343
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен данными между программами
Если Windows, можно попытаться на COM Automation посмотреть.

вообще, тема не очень раскрыта. Если Вы их сами пишете, то зачем две программы? почему просто не DLL?

Когда мне нужно было отдельным процессом кусок кода запустить, то я банально через стандартный ввод-вывод обменивался. Главный процесс писал в стандартный ввод порожденного процесса, соответственно порожденный писал в стандартный вывод, а главный оттуда читал. Пара десятков строк кода стыренных из MSDN, просто, дешево и отлаживать легко.
...
Рейтинг: 0 / 0
17.11.2014, 15:06
    #38808432
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен данными между программами
S70, эту задачу можно решать десятком способов. Сокеты, файлы, маилслоты, pipes, разделяемая память, и даже клипборд
и реестры. Вся разница в 1) скорости как это закодить 2) в сложности 3) в пропускной способности канала
который получится по факту.

Вобщем дальше без ТЗ говорить безсмысленно. Философия пойдет.
...
Рейтинг: 0 / 0
17.11.2014, 15:17
    #38808461
NekZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен данными между программами
S70,

В Qt для этого есть подходящий класс QSharedMemory
...
Рейтинг: 0 / 0
17.11.2014, 16:13
    #38808537
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен данными между программами
всё бы ничего, то топикстартеру нужно решить ту же задачу и для c#

голосую за shared memory
...
Рейтинг: 0 / 0
17.11.2014, 16:47
    #38808560
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен данными между программами
Изопропилвсё бы ничего, то топикстартеру нужно решить ту же задачу и для c#
...

ZeroMQ

Пример сервера на C: http://zguide.zeromq.org/page:all#Ask-and-Ye-Shall-Receive

Пример клиента на С++, http://zguide.zeromq.org/cpp:hwclient
Пример клиента на C#: http://zguide.zeromq.org/cs:hwclient
...

C++: http://zeromq.org/bindings:cpp (ну или просто C, используя CZMQ: http://czmq.zeromq.org/)
C#: http://zeromq.org/bindings:clr

Обмен данными единым образом внутри процесса, между потоками, между процессами, между разными компьютерами сети.
Протоколы: tcp, iproc, ipc, multicast, ...
OS'es: Windows, Linux, Android, ...

Биндинг: питон, ява, сишарп, пхп, дельфи, и еще куча языков
Масса режимов: запрос/ответ, издатель/подписчик, запрос/маршрутизатор, эксклюзивная пара... ... ...

Не требует выделенного процесса. Быстрая. Компактная. Бесплатная. Развивается.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Обмен данными между программами / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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