我正在尝试300 MB通过REP-socket发送大消息 ( ) 。
有多个客户端,每个客户端都通过REQ-socket连接到服务器。服务器为每个客户端创建一个专用套接字,等待请求(包含一个标识符)并使用ZMQ_SENDMORE以下两部分发送消息:
1 KB)300 MB)之后REP-socket 立即关闭。该Context()-instance然后在父线程关闭。ZMQ_LINGER套接字的时间保留为默认值(无限)。有时会发送元数据,但不会发送图像数据。
我跟踪了 ZeroMQ 中的调用,发现内部(windows)套接字在消息数据发送到网络之前已关闭。我认为zmq_term()只要队列中有未发送的消息就会阻塞。
作为一种解决方法,我将客户端更改为在收到数据作为确认后发送另一条请求消息。这很有效,但我不太确定我是否已经解决了根本问题。
ZeroMQ 版本是 4.0.4。我正在使用 C++ 绑定。服务器和客户端都在 Windows(7 和 10)上运行。