Кроссплатформенный IPC - PullRequest
       55

Кроссплатформенный IPC

68 голосов
/ 13 сентября 2008

Я ищу предложения о возможных механизмах МПК, которые:

  • Кроссплатформенная (Win32 и Linux как минимум)
  • Простота реализации в C ++ , а также наиболее распространенных языках сценариев (perl, ruby, python и т. Д.).
  • Наконец, прост в использовании с точки зрения программирования!

Какие у меня варианты? Я программирую под Linux, но я хотел бы, чтобы то, что я пишу, было переносимым на другие ОС в будущем. Я думал об использовании сокетов, именованных каналов или что-то вроде DBus.

Ответы [ 16 ]

3 голосов
/ 09 декабря 2008

Распределенные вычисления, как правило, сложны, и вам лучше использовать существующие библиотеки или интегрированные среды вместо того, чтобы заново изобретать колесо. Предыдущий постер уже перечислил пару таких библиотек и фреймворков. В зависимости от ваших потребностей вы можете выбрать либо очень низкий уровень (например, сокеты), либо высокоуровневый фреймворк (например, CORBA). Не может быть общего ответа «использовать это». Вам нужно научиться распределенному программированию, и тогда вам будет гораздо проще выбрать правильную библиотеку или среду для работы.

Существует широко используемая среда C ++ для распределенных вычислений, называемая ACE и CORBA ORB TAO (которая построена на ACE). Существуют очень хорошие книги об ACE http://www.cs.wustl.edu/~schmidt/ACE/, так что вы можете посмотреть. Береги себя!

3 голосов
/ 13 сентября 2008

Это не проще, чем использование каналов, которые поддерживаются в каждой операционной системе, о которой я знаю, и к которой можно получить доступ практически на любом языке.

Ознакомьтесь с этим учебником.

2 голосов
/ 13 сентября 2008

TCP-сокеты для локального хоста FTW.

0 голосов
/ 24 сентября 2018

Xojo имеет встроенную межплатформенную поддержку IPC с классом IPCSocket . Хотя вы, очевидно, не могли «реализовать» его на других языках, вы могли бы использовать его в консольном приложении Xojo и вызывать его из других языков, делая эту опцию, возможно, очень простой для вас.

0 голосов
/ 30 сентября 2013

google protobufs - действительно плохая идея, вы хотите легко поддерживать и отлаживать код. людям слишком легко злоупотреблять им и использовать его, чтобы загрязнить ваш код. Прото-файлы хороши, но в основном это то же самое, что и структурный заголовочный файл, и генерируемый им код - полная чушь, заставляющая задуматься, действительно ли это инструмент скрытой атаки для саботажа программных проектов вместо их автоматизации. После того, как вы используете его в течение некоторого времени, его практически невозможно удалить из кода. Вам лучше всего использовать заголовочный файл структур формата исправления, которые легко отлаживаются.

если вам действительно нужно сжатие, переключитесь на отображение адреса / данных в структурах хранения удаленно ... тогда пакеты - это просто набор пар адрес / данные ... также структура, которую очень легко автоматизировать с помощью ваших собственных сценариев perl, которые создают код, читаемый человеком и отлаживаемый

0 голосов
/ 16 сентября 2008

Python имеет довольно хорошую библиотеку IPC: см. https://docs.python.org/2/library/ipc.html

...