c++ - zmq错误代码156384763的原因

标签 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
}

在 REP 端,在 zmq_recv 超时期间将打印 zmq_error_no 11。但有时我会收到错误号 156384763。谁能告诉我该错误的含义?

最佳答案

这是 native ZeroMQ 错误 EFSM:

The zmq_send() operation cannot be performed on this socket at the moment due to the socket not being in the appropriate state. This error may occur with socket types that switch between several states, such as ZMQ_REP.

来源:zmq_send , zmq.h

关于c++ - zmq错误代码156384763的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28989226/

相关文章:

c++ - printf %g 和 %f 之间的零填充差异

c++ - 单击清除编辑框文本

Java套接字 - 客户端不从服务器的套接字读取字符串

c - 收到 UDP 消息,但如果没有则继续

我可以在linux中查看tcp套接字缓冲区的数据来检查数据是否是我想要的

zeromq - 使用ZMQ进行双向线程间通信

c++ - 纯虚方法返回一个对象?

C++ 列表迭代器在遍历时永远不会到达 end()

node.js - Redis pubsub 消息队列,但有回调,就像在 ZeroMQ 中一样

zeromq - 在什么情况下,ZeroMQ套接字会丢失或无法传递消息?