Простое межпроцессное взаимодействие с несколькими слушателями

0

В проекте у меня есть одно мастер-приложение (С#), которое управляет несколькими дочерними приложениями.

Эти дочерние приложения будут записаны в С#, Java, C++ и python. И, что усложняет работу, могут быть несколько экземпляров одних и тех же дочерних приложений.

Это можно проиллюстрировать следующим образом:

Изображение 174551

Прямо сейчас я думал о NamedPipes, но это не будет работать с несколькими экземплярами, потому что они все будут слушать один и тот же канал (на данный момент у меня нет способа сообщить дочернему процессу, который использовать пин-код).

Есть ли простой и легкий способ односторонней связи, которая не зависит от платформы (или, по крайней мере, доступна на упомянутых выше языках)?

  • 0
    Если главное приложение запускает дочерние элементы, может ли оно просто передавать им сообщения в виде строк на стандартном входе?
  • 0
    Вы должны были обновить свой первоначальный вопрос, а не задавать очень похожий новый - stackoverflow.com/questions/25427692/namedpipe-multiple-servers
Показать ещё 2 комментария
Теги:
cross-platform
ipc

2 ответа

1

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

Вы также можете взглянуть на ZeroMQ

1

Как насчет обычного подхода Client/Server? Вы можете сами выбрать (или реализовать) протокол в зависимости от ваших требований.

  • 0
    Каждое дочернее приложение - это сервер, и связь с точки зрения мастер-приложений несколько «тяжелая».
  • 0
    Я скорее думал, что каждый ребенок будет клиентом, так как дочернему приложению легче подключиться к приложению мастер / сервер. Тогда не имеет значения, какой сервер и какой клиент, поскольку каналы ввода-вывода являются двунаправленными. Один хорошо спроектированный сервер более чем способен обслуживать сотни клиентов ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню