2012-03-25 6 views
0

Mon projet actuel consiste à créer un cadre de communication à haut débit pour différents systèmes d'exploitation et systèmes distants pour des applications de vision par ordinateur où les différents composants communiquent à l'aide de sockets ZeroMQ. Cela fonctionne très bien en Standard C++ (Non-Cli).Communication ZeroMQ C++ vers C#

J'ai récemment trouvé un cas d'utilisation où j'ai besoin d'interfacer avec une application codée en C#. Après avoir compilé et exécuté l'exemple "Hello World" du guide (On localhost) avec clrzmq 2.2.2. Je n'arrive pas à communiquer les deux programmes (Un en C++ en C#).

Le serveur C# reçoit une requête du client C++ mais rien ne se passe après cela, il semble juste se bloquer, ce qui indiquerait un problème avec la réponse C#. Le remplacement du serveur C# par un C++ compilé à partir du guide fonctionne correctement.

Quelqu'un a-t-il déjà eu l'occasion d'utiliser des applications C++ pour parler à .NET en utilisant ZMQ? Je serais reconnaissant pour toute aide, car cela n'est couvert dans aucune documentation que j'ai pu localiser.

+1

La communication entre différentes langues, systèmes d'exploitation, matériel, etc. ne devrait faire aucune différence à 0mq. Si vous nous envoyez le minimum absolu de code qui produit le comportement inattendu, nous allons mieux vous aider avec votre problème. – Irfy

+0

Je ne peux pas aider, j'ai peur, mais je peux confirmer que vous n'êtes pas seul. J'ai récemment regardé l'utilisation de clrzmq et j'ai remarqué le même problème d'accrochage lors de la connexion d'un homologue Python. Je jouais juste autour, donc je n'ai pas enquêté assez loin pour découvrir la raison. –

+0

C'est ce que je pensais, je sais qu'il est préférable de sérialiser entre les plates-formes. Windows à Linux, et j'ai utilisé des tampons de protocole Google pour cela, mais ce problème particulier utilise simplement le code minimum du code de la page tutoriel ZMQ comme suit: – nkift

Répondre

1

Cela risque d'être un bogue de l'application. Nous avons un programme comme celui-là qui fonctionne sans problèmes. C# à C++.

+2

Résolu: Après le débogage, je n'ai toujours pas pu déterminer quel était le problème. J'ai donc commencé à partir de zéro, en reconstruisant les bibliothèques à partir de sources en utilisant zeromq-2.1.11 pour C++ et NuGet clrzmq .NET bindings v.2.2.3. pour C#. Après avoir réessayé l'exemple, cela fonctionne maintenant parfaitement. Je suppose que j'avais une bibliothèque corrompue ou dépareillée quelque part. Merci de votre aide. – nkift