2012-03-25 4 views
0

Мой текущий проект предусматривает создание высокоскоростной инфраструктуры для обмена данными между различными ОС и удаленными системами для приложений компьютерного зрения, где различные компоненты взаимодействуют с использованием сокетов ZeroMQ. Это отлично работает в стандартном C++ (Non-Cli).Связь ZeroMQ C++ с C#

Я недавно нашел прецедент, где мне нужно было взаимодействовать с приложением, закодированным на C#. Скомпилировав и запустив пример «Hello World» из руководства (на локальном хосте) с помощью clrzmq 2.2.2. Я не могу подключить две программы (один на C++ один в C#).

Сервер C# получает запрос от клиента C++, но после этого ничего не происходит, он просто кажется зависающим, что указывает на проблему с ответом C#. Замена сервера C# на C++, скомпилированная из руководства, отлично работает.

Есть ли у кого-нибудь опыт получения приложений на C++ для общения с .NET с использованием ZMQ? Я был бы признателен за любую помощь, поскольку это не охвачено ни одной документацией, которую я смог найти.

+1

Связь между различными языками, операционными системами, оборудованием и т. Д. Не должна иметь никакого значения для 0mq. Если вы публикуете нам абсолютный минимум кода, который создает неожиданное поведение, мы лучше поможем вам с вашей проблемой. – Irfy

+0

Боюсь, я не могу помочь, но могу подтвердить, что вы не одиноки. Недавно я посмотрел на использование clrzmq и заметил ту же ошибку при подключении от однорангового узла Python. Я просто играл вокруг, поэтому я не исследовал достаточно далеко, чтобы узнать причину. –

+0

Вот что я подумал, я знаю, что лучше всего сериализовать разные платформы, т.е. Windows для Linux, и для этого я использую буферы протокола Google, но эта конкретная проблема заключается в использовании минимального кода из кода учебной страницы ZMQ следующим образом: – nkift

ответ

1

Это может быть ошибка приложения. У нас есть такая программа без проблем. C# - C++.

+2

Решено: после отладки я все еще не мог решить, в чем проблема, поэтому я начал с нуля, перестраивая библиотеки из исходного кода, используя zeromq-2.1.11 для C++ и NuGet clrzmq .NET привязки v.2.2.3. для C#. Повторив пример, он теперь работает отлично. Угадайте, что у меня была некоторая коррумпированная или несогласованная библиотека. Спасибо за помощь. – nkift