Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在订阅服务器VM上接收消息(VirtualBox上的ZeroMQ)_Virtualbox_Zeromq - Fatal编程技术网

无法在订阅服务器VM上接收消息(VirtualBox上的ZeroMQ)

无法在订阅服务器VM上接收消息(VirtualBox上的ZeroMQ),virtualbox,zeromq,Virtualbox,Zeromq,我在VirtualBox中有两个OpenWrt(18.06.4)VM(A和B),我正在尝试使用ZeroMQ在发布者-订阅者方案中发送消息A是服务器,B是客户端 我正在使用以下代码: 发布者代码: 用户代码: 它在我的电脑上工作,所以我决定在虚拟机上试用 我必须编译它们(使用SDK),以便在VM中执行它们。我编译了两次,更改了一个小细节: 1)客户端正在侦听服务器的IP 10.0.1.4 2)正在侦听服务器IP 192.168.56.10的客户端 这两个版本都在VMs中进行了测试,在这两个版本

我在VirtualBox中有两个OpenWrt(18.06.4)VM(A和B),我正在尝试使用ZeroMQ在发布者-订阅者方案中发送消息A是服务器,B是客户端

我正在使用以下代码:

  • 发布者代码:

  • 用户代码:

它在我的电脑上工作,所以我决定在虚拟机上试用

我必须编译它们(使用SDK),以便在VM中执行它们。我编译了两次,更改了一个小细节:

1)客户端正在侦听服务器的IP 10.0.1.4

2)正在侦听服务器IP 192.168.56.10的客户端

这两个版本都在VMs中进行了测试,在这两个版本中,服务器发送消息(发送函数执行并打印发送的消息),但客户端从未收到任何消息(消息始终为空)

关于我的网络配置。在VirtualBox中,我有一个Nat网络(10.0.1.0/24)和一个VirtualBox网络(192.168.56.1/24)。VM A和B都有一个仅主机适配器(vboxnet0)和一个NAT网络适配器。 这些机器可以互相碰撞

机器的网络配置如下所示:

A

config interface 'loopback'
    option ifname 'lo'
    option proto 'static'
    option ipaddr '127.0.0.1'
    option netmask '255.0.0.0'

config globals 'globals'
    option ula_prefix 'fd03:84ea:bc33::/48'

config interface 'lan'
    option ifname 'eth0'
        option proto 'static'
    option ipaddr '192.168.56.10'
    option netmask '255.255.255.0'

config interface 'wan'
    option ifname 'eth1'
    option proto 'dhcp'
注意:NAT网络IP(“wan”)目前为10.0.1.4

B

config interface 'loopback'
    option ifname 'lo'
    option proto 'static'
    option ipaddr '127.0.0.1'
    option netmask '255.0.0.0'

config globals 'globals'
    option ula_prefix 'fdea:4700:64aa::/48'

config interface 'lan'
    option ifname 'eth0'
    option proto 'static'
    option ipaddr '192.168.56.20'
    option netmask '255.255.255.0'

config interface 'wan'
    option ifname 'eth1'
    option proto 'dhcp'
注意:NAT网络IP(“wan”)目前为10.0.1.5


你们知道问题出在哪里吗?我是否应该更改每个VM内的网络配置和/或更改VirtualBox上的适配器?

避免依赖符号地址解析:

// zmq_bind (publisher, "tcp://*:5563");          // PUB-side wildcard-address translated
   zmq_bind (publisher, "tcp://10.0.1.4:5563");  //           explicit address

// zmq_connect (subscriber, "tcp://localhost:5563"); // SUB-side symbolic-address
   zmq_connect (subscriber, "tcp://10.0.1.4:5563"); //           explicit-address