I have the following code sending array from the server to the client using req and reply pattern,
def send_array( socket, A, flags = 0, copy = True, track = False ):
 """send a numpy array with metadata"""
 md = dict( dtype = str( A.dtype ),
           shape = A.shape,)
 socket.send_json( md, flags | zmq.SNDMORE )
 return socket.send(A,  flags, copy = copy, track = track )
 context = zmq.Context()
 socket = context.socket(zmq.REQ)
 socket.connect("tcp://localhost:5667")
 videoFile = "C:/Users/Downloads/test.mp4"
 camera = cv2.VideoCapture(videoFile)
 while True:
   grabbed, frame = camera.read()
  try:
   frame = cv2.resize( frame, (224, 224) ).astype( "float32" )
  except cv2.error:
  break
  image= img_to_array(frame)
  image=image.reshape((1,image.shape[0],image.shape[1],image.shape[2]))
  image=preprocess_input(image)
  preds=model.predict(image)
  send_array(socket, preds)
 socket.close()
def recv_array( socket, flags = 0, copy = True, track = False ):
  md = socket.recv_json( flags = flags )
  msg = socket.recv(flags = flags, copy = copy, track = track )
  #buf = buffer( msg )
  #pass;
  #img = np.frombuffer(bytes(memoryview(msg)), dtype=md['dtype'])
  A = numpy.frombuffer( bytes(memoryview(msg)), dtype = md['dtype'] )
  return A.reshape(md['shape'])
context = zmq.Context()
socket = context.socket(zmq.REP)
socket.bind("tcp://*:5667")
time.sleep(0.2)
while True:
  frame  = recv_array(socket)
  print(frame)
socket.close()
I am not retrieving any error but no data is sent from the client to the server. Thanks, help is highly appreciated.