ZeroMQ(0MQ)基本问题重新连接或绑定到套接字

时间:2013-09-11 22:34:06

标签: sockets networking zeromq

我在Windows上使用ZeroMQ,使用C#,并且对一个非常基本的网络问题感到困惑。我设置了简单的示例程序,一个用于PUBlish消息,其他用于使用SUB套接字接收它们(SUBscriber程序)。 当两者都在同一个盒子上时工作正常。我使用了端点tcp://127.0.0.1:5000 下一步,我将SUBscriber程序放在一个单独的虚拟机(VM)上,以模拟使用单独的计算机。我运行ipconfig来获取它的IP地址(在guest虚拟机操作系统上),192.168.92.136 主机操作系统有几个网络接口,其中一个是VMware网络适配器VMnet1,IP 192.168.92.1 在主机操作系统上,我运行了PUB程序并将套接字连接到192.168.92.136,即guest虚拟机操作系统的IP地址。 在来宾操作系统上,我运行了SUB程序并将套接字连接到主机操作系统的IP。不工作。 然后我更改了来宾操作系统上的SUB程序,使其连接到自己的IP地址,即来宾的操作系统os - 192.168.92.136。现在它有效!

问题:为什么?我糊涂了。但在某种程度上它是有道理的:如果该套接字用于服务于动态来来往往的各种客户端,它不知道每个客户端的IP地址。那么你指定什么作为SUB套接字的IP地址?!因此,将其连接到自己的主机IP地址确实可以解决这个问题。但ZeroMQ指南并未在任何地方说出这一点! 一个相关的问题是:如果您的主机有多个网络接口,并且每个都有自己的IP地址,那么如果您使用其他主机的IP地址将套接字连接到其他主机 - 您是否需要指定哪个网络你想通过哪些接口连接?如果是这样,怎么样?

顺便说一下,一次只能有一个用户程序能够连接。尝试连接到它的SUB套接字到本地IP地址的第二个程序总是得到“地址正在使用”错误消息。我正在尝试以小步骤取得进展,并在我去的时候学习这一点。 感谢您的帮助或建议。 James Hurst,JamesH在Designforge dot com

0 个答案:

没有答案