C++ ZeroMQ python到c++;酒吧/酒吧

C++ ZeroMQ python到c++;酒吧/酒吧,c++,zeromq,C++,Zeromq,我有一个下面的python代码,它成功地在python-python发布/订阅ZeroMQ(pyzmq)场景中工作 我可以通过C++ + < /P>订阅Python服务器吗? 我添加了一个C++客户端代码,但没有用。 Python: def send_array_and_str(socket, img, string, flags=0): global count print(count , " sended") ## numpy array gönderirken s

我有一个下面的python代码,它成功地在python-python发布/订阅ZeroMQ(pyzmq)场景中工作

我可以通过C++ + < /P>订阅Python服务器吗?

我添加了一个C++客户端代码,但没有用。 Python:

def send_array_and_str(socket, img, string, flags=0):
    global count
    print(count , "  sended")
    ## numpy array gönderirken shape bilgilerini de msg olarak eklemek lazım
    md = dict(dtype=str(img.dtype), shape=img.shape)
    socket.send_string(str(count), flags | zmq.SNDMORE)
    socket.send_string(string, flags | zmq.SNDMORE)

    socket.send_json(md, flags | zmq.SNDMORE)
    socket.send(img, flags)
    count += 1
    # print(count)
    return


context = zmq.Context()
socket = context.socket(zmq.PUB)
socket.bind("tcp://*:5667")
C++

<强> q>强>:“我可以通过C++订阅Python服务器吗?” 哦,当然可以

上面介绍的客户机代码不起作用,事实上,它确实按照API的定义起作用了,因为您没有订阅
子部分

因此,它实际上什么也没有收到,完全符合ZeroMQ API的要求,并且符合文档化的ZeroMQ API


如果您从未使用过ZeroMQ,
您可能会喜欢在深入了解更多细节之前先看看


.connect()
-方法指向相同的
端口#
~5667
,如果您希望
从那里为
提供任何有意义的服务,这也会很有用,不是吗?

您的制作人(发布者)和使用者(订阅者)可以使用具有ZeroMQ绑定/库的任何语言

你的制作人必须

  • 将发布套接字绑定到端点
  • 将消息发送到发布套接字
  • 您的消费者必须

  • …将子套接字连接到生产者绑定到的同一端点(主机:端口)(在本例中,
    )tcp://localhost:5556“
  • …使用
    zmq_setsockopt
    订阅主题。这会让制作人知道向消费者发送消息。(您的订阅者不会这样做。)
  • 订阅主题是消息的前导字符,或者是多部分消息中第一个消息部分的前导字符。可以传递一个空字符串作为主题来接收所有消息(我只是认为它是最小前缀字符串)。请参阅[http://api.zeromq.org/2-1:zmq-设置锁定选项]

    zmq_setsockopt(subscriber, ZMQ_SUBSCRIBE, "", 0);
    

    您的C++代码至少不应该连接到与Python代码相同的端口吗?
    zmq_setsockopt(subscriber, ZMQ_SUBSCRIBE, "", 0);