Мне нужен четкий пример для zeroMQ c ++ 11 <> Python Multipart Messaging cvmat + string - PullRequest
0 голосов
/ 13 октября 2019

Привет всем щедро трудолюбивым друзьям.

Я могу отправлять и получать составные сообщения с python, как показано ниже. Может быть, это мое нежное прикосновение или отсутствие концентрации, я не мог заставить работать с ++ 11 <> сообщениями Python таким же образом.

Также не нашел четкого примера.

Что мне нужно:

У меня есть cv :: Mat и строковая информация. Я хочу отправить его на python (или c ++ 11 без проблем) через zeromq.

Я думаю, что это может быть очень полезно для всех любителей 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'])

1 Ответ

0 голосов
/ 24 октября 2019

Zguide имеет список примеров . Если вам нужна помощь в использовании определенного шаблона, вам нужно лучше объяснить, что вы пытаетесь сделать, что вы пытались, а что не сработало.

...