我可以使用 Python 发送和接收多部分消息,如下所示。可能是我的温柔触摸或注意力不集中,我无法以同样的方式进行工作 c++11 < > Python 消息传递。
也没有找到明确的例子。
我需要的:
我有 cv::Mat 和字符串信息。我想通过 zeromq 将它发送到 Python(或 c++11 没问题)。
我认为这对所有 ZeroMQ 用户都非常有用。
在 python 中,我可以发送和接收消息,如下所示:
server.py(部分):
def send_array_and_str(socket, img, string, flags=0):
global count
md = dict(dtype=str(img.dtype), shape=img.shape)
socket.send_string(str(count), 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")
time.sleep(0.2)
client.py(部分):
def recv_array_and_str(socket, flags=0, copy=True, track=False):
string = socket.recv_string(flags=flags)
md = socket.recv_json(flags=flags)
msg = socket.recv(flags=flags, copy=copy, track=track)
print('::', string)
# print()
img = np.frombuffer(bytes(memoryview(msg)), dtype=md['dtype'])
return string, img.reshape(md['shape'])