zmq错误代码156384763的原因

Kum*_*mar 5 c++ sockets zeromq

我正在使用zmq req / rep模式通信。实现非常简单,req发送一些数据并等待recv。代表接收数据,进行处理并回复。

//REQ
zmq_connect
zmq_send
zmq_recv //blocking
zmq_close

//REP
zmq_bind
while(true) {
  while(data_received) {
    //miscellaneous process
    zmq_recv //non-blocking
      Print zmq_error_no if zmq_recv fails
  }
  zmq_send
}
Run Code Online (Sandbox Code Playgroud)

在REP端,在zmq_recv超时期间,将打印zmq_error_no 11。但是有时我会收到错误号156384763的信息。有人可以告诉该错误的含义吗?

met*_*ngs 4

这是本机 ZeroMQ 错误 EFSM:

由于套接字未处于适当的状态,目前无法在此套接字上执行 zmq_send() 操作。在多个状态之间切换的套接字类型(例如 ZMQ_REP)可能会发生此错误。

来源:zmq_sendzmq.h