C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – ZeroMQ:带有大消息的REQ / REP大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图通过REP套接字发送大邮件(300 MB).
有多个客户端,每个客户端通过REQ套接字连接到服务器.服务器为每个客户端创建一个专用套接字,等待请求(包含标识符)并使用ZMQ_SENDMORE分两部分发送消息:

>元数据(约1 KB)
>数据(约300 MB)

之后,REP套接字立即关闭.然后在父线程中关闭Context() – 实例.套接字的ZMQ_LINGER时间保持认(无限).
有时会发送元数据,但不会发送图像数据.我在ZeroMQ中跟踪调用,发现在将消息数据发送到网络之前,内部(windows)套接字已关闭.我认为只要队列中有未发送的消息,zmq_term()就会阻塞.
作为一种解决方法,我将客户端更改为在收到数据作为确认后发送另一个请求消息.这很有效,但我不确定我是否解决了根本问题.
ZeroMQ版本是4.0.4.我正在使用C绑定.服务器和客户端都在Windows上运行(7和10).

解决方法

我知道这不是你想要的答案,但我在 Linux上遇到过与ZeroMQ类似的东西.底层Linux套接关闭,一些消息从未通过.

在我的用例中,我将服务器保持打开状态,直到用户给我一些键盘输入.这是一个黑客,但对于我的用例,它给了我想要的东西.

关闭套接字之前,您也可以睡一两秒钟.再一次,不漂亮,但它可能是一个快速修复,直到它得到修补.

编辑添加:我也发送多部分消息,我的一个消息部分相当大(~200MB).

大佬总结

以上是大佬教程为你收集整理的c – ZeroMQ:带有大消息的REQ / REP全部内容,希望文章能够帮你解决c – ZeroMQ:带有大消息的REQ / REP所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。