WLAN网络上的Python ZMQ示例

时间:2018-12-17 17:50:36

标签: python tcp zeromq pyzmq

对于一个项目,我需要通过WLAN网络通过ZMQ在C ++和Python之间进行通信。 如果我使用C ++实现,则一切正常。我只需在client.bind(“ tcp:// ...)上输入IP +端口号,即可通过WLAN发送消息。 如果我尝试使用Python代码进行同样的操作,它将无法正常工作。

所以我只是测试了python示例(所以不再使用C ++):http://zguide.zeromq.org/py:durapub http://zguide.zeromq.org/py:durasub

我用主机IP替换了客户端中的> localhost <。我没有收到任何消息。除了替换之外,我完全使用示例中的代码。

以下是代码:

发布商:

import zmq
import time

context = zmq.Context()

# Subscriber tells us when it's ready here
sync = context.socket(zmq.PULL)
sync.bind("tcp://*:5564")

# We send updates via this socket
publisher = context.socket(zmq.PUB)
publisher.bind("tcp://*:5565")

# Wait for synchronization request
sync_request = sync.recv()

# Now broadcast exactly 10 updates with pause
for n in xrange(10):
    msg = "Update %d" % n
    publisher.send(msg)
    time.sleep(1)

publisher.send("END")
time.sleep(1)  # Give 0MQ/2.0.x time to flush output

SUBSCRIBER

import zmq
import time

context = zmq.Context()

# Connect our subscriber socket
subscriber = context.socket(zmq.SUB)
subscriber.setsockopt(zmq.IDENTITY, "Hello")
subscriber.setsockopt(zmq.SUBSCRIBE, "")
subscriber.connect("tcp://192.168.2.119:5565")

# Syncronize with the publisher
sync = context.socket(zmq.PUSH)
sync.connect("tcp://192.168.2.119:5564")
sync.send("")

# Get updates, expect random Ctrl-C death
while True:
    data = subscriber.recv()
    print data
    if data == "END":
        break

它完全是示例代码,除了我在“订户代码”中将localhost更改为发布者的IP地址。顺便说一句,我在C ++示例代码中做了同样的事情,并且可以正常工作。

0 个答案:

没有答案