Как установить связь между несколькими приложениями на разных языках

В настоящее время у меня работают две программы, связанные с одной и той же операцией. Программа A (написанная в vb6) является своего рода «контроллером», который включает устройство и запускает Программу B (написанную на C ++), которая запускает сбор данных устройства. Теперь программе В нужен способ сообщить несколько МИНОРСКИХ фрагментов данных в программу А. Программа А также должна отслеживать некоторые дополнительные данные, и, если срабатывает сигнал 1, она должна сообщить об этом программе В. Каков наилучший способ установить это общение? Очевидными способами являются текстовый / бинарный файл, который каждая программа читает и записывает (нет лучшего места), и я также подумал об использовании UDP для связи, так как машина будет находиться в закрытой сети. Тем не менее, я не уверен, как я должен на самом деле это сделать?

1

Решение

Named Pipes — элегантное решение, но вы можете использовать файлы для этого, как вы сказали.

http://support.microsoft.com/kb/177696

Как работать с именованными каналами (C ++ сервер, C # клиент)

2

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

Есть и другие варианты:
Буфер обмена, COM, копирование данных, DDE, сопоставление файлов, почтовые ящики, каналы, RPC, сокеты Windows

Обратитесь сюда: http://msdn.microsoft.com/en-us/library/windows/desktop/aa365574%28v=vs.85%29.aspx

2

как вы включаете устройство и запускаете программу B?

Я бы использовал тот же канал для дополнительного общения, так как эта линия уже существует и работает (так как началась программа B)

0

Лично я предпочел бы установить связь и передавать данные, используя стандартные протоколы для этой задачи, такие как FTP или HTTP. Таким образом, при изменении вашей Программы A или Программы B (или при смене среды соединения на другую) вы все равно можете иметь четко определенный и простой в реализации протокол связи. Сетевые стеки доступны для различных процессоров и операционных систем, а FTP (или TFTP) прост в реализации.

0