Python 如何在两个虚拟机之间使用pyZMQ发布/订阅

Python 如何在两个虚拟机之间使用pyZMQ发布/订阅,python,virtual-machine,publish-subscribe,pyzmq,distributed-computing,Python,Virtual Machine,Publish Subscribe,Pyzmq,Distributed Computing,我有两个vm(VirtualBOx、ubuntu18.04和pythonzmq)在同一台物理机器(Win10)中运行。两台机器都配置为网桥,可以成功ping 192.168.1.56-192.168.1.65。我遵循了本教程,但是,它不起作用。在一台机器“服务器”上打印数据,但在订阅者“客户端”上,它不会接收任何内容 你试过这个吗,或者你知道是什么原因吗 Q:“你试过这个吗,或者你知道哪个可能是原因吗?” 是的,复制粘贴源代码(使用与您相同的场景#2,使用单独的子)工作正常,但使用下面修改的代

我有两个vm(VirtualBOx、ubuntu18.04和pythonzmq)在同一台物理机器(Win10)中运行。两台机器都配置为网桥,可以成功ping 192.168.1.56-192.168.1.65。我遵循了本教程,但是,它不起作用。在一台机器“服务器”上打印数据,但在订阅者“客户端”上,它不会接收任何内容

你试过这个吗,或者你知道是什么原因吗

Q:“你试过这个吗,或者你知道哪个可能是原因吗?”

是的,复制粘贴源代码(使用与您相同的
场景#2
,使用单独的
)工作正常,但使用下面修改的代码模板


A
PUB
-原型发布者: 使用ZeroMQ v.2.11,py-2.7:

import zmq
import random
import sys
import time

context = zmq.Context()
try:
    socket  = context.socket( zmq.PUB )
    socket.bind( "tcp://*:%s" % "5556" if len( sys.argv ) < 2 else int( sys.argv[1] ) )
    socket.setsockopt( zmq.LINGER, 0 )

    while True:
       topic       = random.randrange( 9999, 10005 )
       messagedata = random.randrange( 1, 215) - 80
       print "Topis = {0: >6d}: DATA = {1: >4d}".format( topic, messagedata )
       socket.send( "%d %d" % ( topic, messagedata ) )
       time.sleep( 1 )

except:
    print "EXC'd here"

finally:
    "WILL gracefully CLOSE Socket()-instance(s) and TERM Context()-instance(s)"
    socket.close()
    context.term()

在修改定义无效TCP/IP目标的
端代码后,您的实验失败,因为明显的原因,该代码无法成功地
.connect()
。去看看这个解决方案

Q:“你试过这个吗,或者你知道哪个可能是原因吗?”

是的,复制粘贴源代码(使用与您相同的
场景#2
,使用单独的
)工作正常,但使用下面修改的代码模板


A
PUB
-原型发布者: 使用ZeroMQ v.2.11,py-2.7:

import zmq
import random
import sys
import time

context = zmq.Context()
try:
    socket  = context.socket( zmq.PUB )
    socket.bind( "tcp://*:%s" % "5556" if len( sys.argv ) < 2 else int( sys.argv[1] ) )
    socket.setsockopt( zmq.LINGER, 0 )

    while True:
       topic       = random.randrange( 9999, 10005 )
       messagedata = random.randrange( 1, 215) - 80
       print "Topis = {0: >6d}: DATA = {1: >4d}".format( topic, messagedata )
       socket.send( "%d %d" % ( topic, messagedata ) )
       time.sleep( 1 )

except:
    print "EXC'd here"

finally:
    "WILL gracefully CLOSE Socket()-instance(s) and TERM Context()-instance(s)"
    socket.close()
    context.term()


在修改定义无效TCP/IP目标的
端代码后,您的实验失败,因为明显的原因,该代码无法成功地
.connect()
。去了解一下解决方案。

我已经创建了这些文件,但是listener
python子原型。listener.py
没有从服务器
python发布原型Publisher.py
Step 1:zmq.SUBSCRIBE”接收筛选的数据我已经创建了这些文件,但listener
python子原型.listener.py
仍然没有从服务器
python发布原型Publisher.py
步骤1:zmq.SUBSCRIBE接收筛选的数据,“”