2014-11-07 2 views
0

Есть 2 приложения C++, где одно приложение позволяет сказать, что A читает с устройства интерфейса и выполняет некоторую обработку, и ему необходимо предоставить данные в определенном формате для приложения B. Я чувствую, что это можно сделать двумя способами, как указано ниже: 1. Я сериализую структуру данных в приложении A и записываю ее в сокет. 2. Я вставляю пакет в интерфейс.Связь между приложением 2 C++

Пожалуйста, помогите оценить, какой вариант будет быстрее. Или если есть еще один способ сделать это быстрее.

+3

Что вы подразумеваете под «инъекцией пакета в интерфейс»? Что такое «интерфейс»? –

+1

Какова целевая платформа? –

+1

Общая память приходит в голову, потому что из вашего другого сообщения я предполагаю, что вы обрабатываете много данных и хотите быть быстрыми. –

ответ

0

Я не уверен, что вы подразумеваете под «Я вставляю пакет в интерфейс».

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

Если на одной машине вы можете реализовать некоторый тип межпроцессного обмена. Я рекомендую использовать Boost для этого: http://www.boost.org/doc/libs/1_56_0/doc/html/interprocess.html

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

+0

-Я использую программирование библиотеки pthreads .. не boost. Есть ли какая-то заметная разница между ними. Да, в конечном счете, я испытаю это. Но я подумал, спрашивая здесь, потому что многие эксперты являются частью этого форума. – rockfence

+0

Реализация Boost является кросс-платформенной и довольно приятной в использовании. Кажется, он использует pthreads под капотом на POSIX-системах (из документации: «В системах POSIX Boost.Interprocess использует системные вызовы pthread для реализации классов, таких как мьютексы, переменные условий и т. Д.»). Я не знаком с pthreads. Однако, прочитав http://beej.us/guide/bgipc/output/html/singlepage/bgipc.html, кажется, что он предоставляет несколько способов выполнить то, что вы ищете. – AntonyG

+0

Если вы довольны ответом, не могли бы вы принять его? В противном случае дайте мне знать, могу ли я помочь ... – AntonyG

Смежные вопросы