Синхронизированный обмен данными между двумя приложениями (одно использует C, а другое — C ++)

У нас есть два приложения: одно использует C / Fortran, а другое — C ++.

  • Мы хотим, чтобы два приложения обменивались данными предпочтительно без буферный файл,
  • и мы хотим обеспечить синхронизация между двумя приложениями, так как они имеют два разных временных шага.

Любые полезные идеи высоко ценятся.

2

Решение

Самый простой способ будет использовать передача сообщений с помощью Розетки, TCP или UDP в зависимости от ваших потребностей.

Как передать данные с помощью сокетов в C

1

Другие решения

Есть несколько способов межпроцессного взаимодействия, см. Эту ссылку сравнение методов IPC.
Выбор здесь зависит от нескольких переменных, таких как: работают ли эти приложения на разных машинах по сравнению с одной, находятся ли они в разных операционных системах, насколько быстро и надежно, а также сложность реализации.
Мой фаворит в этом случае — Named Pipes, он прост в реализации и надежен Именованные трубы:

0

Я не уверен, какова ваша ОС и требования, но если оба приложения работают на одном компьютере с Linux, вы также можете взглянуть на DBUS.
Другим способом является использование веб-сервисов, таких как gSOAP. Вы можете использовать его вместе с Eclipse для редактирования WSDL и, возможно, SoaMoa для тестирования веб-сервиса.
Обе эти опции достаточно высокого уровня, поэтому вам не нужно напрямую работать с сокетами и сериализацией / десериализацией.

0

То, что должно быть очень простым в использовании, будет zeromq для вашего случая. Также плюсом будет отличная документация.

0