【发布时间】:2012-03-26 13:12:38
【问题描述】:
我目前的项目涉及为计算机视觉应用程序的不同操作系统和远程系统之间的通信构建高速框架,其中各种组件使用 ZeroMQ 套接字进行通信。这在标准 C++(非 Cli)中运行良好。
我最近发现了一个用例,我需要与用 C# 编码的应用程序交互。使用 clrzmq 2.2.2 编译并运行指南中的“Hello World”示例(在 localhost 上)。我无法让这两个程序进行通信(一个在 C++ 中,一个在 C# 中)。
C# 服务器收到来自 C++ 客户端的请求,但之后没有任何反应,它似乎只是挂起,这表明 C# 响应存在问题。用从指南编译的 C++ 服务器替换 C# 服务器可以正常工作。
有人有使用 ZMQ 让 C++ 应用程序与 .NET 对话的经验吗?我将不胜感激,因为这不在我能够找到的任何文档中。
【问题讨论】:
-
不同语言、操作系统、硬件等之间的通信对 0mq 应该没有影响。如果您向我们发布产生意外行为的绝对最少代码,我们将更好地帮助您解决问题。
-
我忍不住,我很害怕,但我可以确认你并不孤单。我最近查看了使用 clrzmq 并注意到从 Python 对等方连接时出现相同的挂起问题。我只是在玩弄,所以我没有深入调查以找出原因。
-
这就是我的想法,我知道最好跨平台序列化,即。从 Windows 到 Linux,我一直在为此使用 Google 协议缓冲区,但这个特殊问题只是使用 ZMQ 教程页面代码中的最少代码,如下所示:
-
它是开源的。你得到了代码,你得到了一个调试器,找到了错误并将补丁提交回项目。如果您不想自己动手,那么也有办法解决这个问题:iMatix 似乎以提供技术支持为生。
-
我的 C# 服务器可以很好地与 Python 客户端配合使用。