jjzjj

c++ - 使用 ZeroMQ 构建对等工作负载调度程序是否有帮助?

我正在编写一个工作负载调度程序。我希望我的软件成为点对点调度程序,即。一个节点只知道一些邻居(其他节点)并使用它们到达其他节点。每个节点都有自己的加权路由表来向其他对等点发送消息(基本上基于跳数),即。“我希望主人给我我的时间表”或“节点B上的资源A可用吗?”:哪个邻居最接近我的目标?例如,我使用XML-RPC(xmlrpc-c)和std::multimaps/编写了自己的路由协议(protocol)>std::maps.我正在考虑使用ZeroMQ来优化我的数据流:排队可以减少对等点之间的网络负载;订阅可用于发布升级。因此:我需要打开与创建新连接类型一样多的套接字;每个节点都需要是客户

c++ - 如何对多个Server-Client对使用ZeroMQ?

我正在C++14中利用多线程实现性能很重的两方协议(protocol),并且当前正在将ZeroMQ用作网络层。该应用程序具有以下简单架构:一个主服务器角色一个主要客户角色服务器和客户端均生成固定数目的线程n所有n并行并发线程对都执行一些性能和通信,但相互之间是互斥的,但互斥的协议(protocol)交换,即它们以n固定对运行,并且不应与成对的固定对手混合/交换任何数据。我当前的设计在Context()和server上都使用单个ZeroMQclient-实例,该实例在所有n-local线程之间共享,并且每个client/server线程对都创建一个ZMQ_PAIR套接字(我只是增加端口号

c++ - ZeroMQ 多部分消息第二部分 0 大小

我正在尝试使用ZMQ4.2.3和cppzmq中的子/Release模式接收多部分消息我能够成功发送和接收单部分消息但是当我尝试在第二帧中读取它的大小始终为0。让我完全困惑的是使用NetMQ的C#版本读取第二帧没有问题,让我相信它正在正确发送。我知道我遗漏了一些东西,但今天是我试图找出没有成功的原因的第二天。这是我的酒吧代码#include#include"zmq_addon.hpp"voidmain(){zmq::context_tctx=zmq::context_t();zmq::socket_tpub=zmq::socket_t(ctx,zmq::socket_type::pub)

c++ - ZMQ Radio/Dish 无法发送多部分消息

我尝试在ZMQradio套接字上发送多部分消息,但我收到EINVAL错误(无效参数)。这是发送消息第一部分的代码:#include#include#include"ZmqRadio.h"usingnamespacestd;intmain(){autoaddr="udp://127.0.0.1:4444";automyGroup="myGroup";std::stringdata="Hello";void*context=zmq_ctx_new();void*radio=zmq_socket(context,ZMQ_RADIO);zmq_connect(radio,addr);zmq_m

c++ - 在 solaris 上链接 zeromq 静态库

我想在我的构建中链接zeromq库,这样它们就不必单独安装在最终用户的机器上。我使用以下方法配置了zeromq:./configure--enable-static--disable-shared--prefix=/home/xx/out但是当我这样做的时候:g++-ozclientzmqclient.o/home/xx/out/lib/libzmq.a我收到链接错误:Undefinedfirstreferencedsymbolinfilerecv/opt/zmq/out/lib/libzmq.a(libzmq_la-signaler.o)send/opt/zmq/out/lib/li

c++ - 系统托盘图标没有响应

当我打开我的应用程序时,该应用程序正在等待与服务器的连接,我通过调用插槽run()来完成此操作,它等待来自服务器的确认数据包,当它收到然后它隐藏“等待连接”字符串并加载其他内容。问题是,当它等待数据包时,系统托盘图标没有任何响应,当服务器发送数据包和应用程序加载时,系统托盘图标开始响应(用于右键单击菜单)。我正在为IPC使用ZeroMQ。我有这样的东西:intmain(intargc,char*argv[]){QApplicationa(argc,argv);MainWindoww;w.show();//THISPARTQTimer::singleShot(2000,&w,SLOT(r

c++ - ZMQ : Sending custom CPP object over the ZMQ queue

我有一个名为GenericMessage的类,显示在下面的第一个代码片段中(在GenericMessage.hxx中定义)。我有一个名为TestFE.cpp的.cpp文件(参见下面的第二个代码片段),它试图通过ZMQ队列发送类GenericMessage的实例(另请参见下面的第四个代码片段-ZmqHandler.hxx)。TesfFE.cpp通过包含ZmqHandler.hxx在此处实现ZMQ推送模式。我还有另一个名为TestBE.cpp的.cpp文件(请参阅下面的第三个代码片段),它通过ZMQ队列接收上述GenericMessage实例。TestBE.cpp在此处实现ZMQ拉模式以通

c++ - 类内的 ZMQ C++ 事件循环

我使用ZMQ的总体目标是避免陷入异步消息传递的困境;ZMQ似乎是一种便携实用的解决方案。然而,大多数ZeroMQ文档likethis,以及我在Google上搜索过的许多其他zmq示例都基于helloworld.c格式。也就是说,它们都是intmain(){}中的简单程序代码。我的问题是我想在类C++单例类中“嵌入”一个zmq“监听器”。我想“听”消息然后处理它们。我打算使用zmq的PUSH->PULL套接字,以防万一。我不知道该怎么做是在内部“事件循环”中。classfoomgr{public:staticfoomgr&get_foomgr();//...private:foomgr(

c++ - Zmq 上下文 - 我应该在新线程中创建另一个上下文吗?

我有几个服务器应用程序使用我创建的共享ZMQ类。偶尔当这些服务器处理请求时,它们需要发送消息到另一个ZMQ服务器。我是ZMQ的新手,所以我想确保我理解正确。处理服务器监听器的类创建一个zmq::context_t和zmq::socket_t,并绑定(bind)套接字。这无限地在一个单独的线程上运行。当这个服务器需要在另一个函数中发送消息时(完全脱离这个ZMQ类),我是否需要在这里生成一个新的上下文并发送消息,或者我是否应该以某种方式将相同的上下文传递给这个类(on一个不同的线程),绑定(bind)一个新的套接字然后从那里去?如果是前者,我使用什么数字来初始化新上下文是否重要,或者con

c++ - ZeroMQ 是否允许多个服务器套接字?

nativeC套接字API在accept()上返回一个新的套接字描述符,该描述符绑定(bind)到某个远程套接字。这很好,因为我可以创建线程、传递套接字并建立点对点连接,或者更好的是通过Internet建立线程对线程连接。而这正是我想要的:来自客户端的一个线程应该连接到服务器上的一个指定线程。因此,我不需要工作池或负载平衡,甚至不需要异步操作。服务器线程保存历史记录。ZeroMQ看起来不错,但据我所知,它不会在接受时拆分套接字。有没有办法与ZerMQ建立这样一个线程到线程的同步连接? 最佳答案 您问的是如何将特定解决方案(将套接字移