<p>我在sofa框架中使用类似的zmq实现(与autor插件相关)。在</p>
<>我没有任何问题从ZMQ C++发送到Python ZMQ。在</p>
<p>下面是用python编写的zmq服务器的概述:</p>
<pre><code>import zmq
context = zmq.Context()
socket = context.socket(zmq.SUB)
socket.setsockopt(zmq.SUBSCRIBE, "")
print "Collecting data from c++ ..."
socket.connect ("tcp://127.0.0.1:6000")
while True:
print socket.recv()
</code></pre>
<p>以下是结果概述:</p>
^{pr2}$
<p>我使用zmq作为发布者,但它不会改变您的需求。另外,请求客户机的实现几乎相同。
看起来您打印的是请求而不是消息</p>
<p>您可以在此处找到c++发送方部分的实现:
<a href="https://github.com/SofaDefrost/sofa/blob/sofaCommunication/applications/plugins/Communication/components/serverCommunicationZMQ.inl" rel="nofollow noreferrer">https://github.com/SofaDefrost/sofa/blob/sofaCommunication/applications/plugins/Communication/components/serverCommunicationZMQ.inl</a></p>
<p>编辑:</p>
<p>下面是一个使用zmq请求的示例:</p>
<pre><code>import zmq
context = zmq.Context()
socket = context.socket(zmq.REQ)
print("Collecting data from c++ using REQ ...")
socket.connect("tcp://localhost:6000")
while True:
print("Sending request")
socket.send(b"Hello")
message = socket.recv()
print("Received reply : %s" % message)
</code></pre>
<p>结果:</p>
<pre><code>douaille@douaille:~/Documents/zmq$ python zmqClient.py
Collecting data from c++ using REQ ...
Sending request
Received reply : /colorLight string:'1 1 1 1'
Sending request
Received reply : /colorLight string:'1 1 1 1'
Sending request
Received reply : /colorLight string:'1 1 1 1'
</code></pre>