ZeroMQ Majordomo worker上的断言错误
Assertion error on ZeroMQ Majordomo worker
我遇到了ZeroMQ Majordomo worker API的一个问题,使用这个简单的worker client,它在断言时失败。
我使用的代理全部来自ZeroMQ站点的示例部分。 m_reply_to
用于什么,何时设置?
mdwrkapi.hpp:123: zmsg* mdwrk::recv(zmsg*&): Assertion `m_reply_to.size()!=0' failed.
下面是工作代码。
mdwrk session ("tcp://localhost:5555", "GenericData", verbose);
zmsg *reply = 0;
while (1) {
zmsg *request = session.recv (reply);
if (request == 0) {
break; // Worker was interrupted
}
reply = request; // Echo is complex… :-)
}
下面是客户端部分:
mdcli session ("tcp://localhost:5555", verbose);
int count = 1;
while(1) {
zmsg * request = new zmsg("Hello world");
zmsg * reply = session.send ("GenericData", request);
if (reply) {
delete reply;
} else {
continue; // Interrupt or failure
puts("Interupt or failure");
}
sleep(1);
puts("sleeping");
}
m_reply_to
的用途是什么?
取自Majordomo源代码, m_reply_to
被声明为:
/* =====================================================================
mdwrkapi.hpp
Majordomo Protocol Worker API
Implements the MDP/Worker spec at http://rfc.zeromq.org/spec:7.
---------------------------------------------------------------------
Copyright (c) 1991-2011 iMatix Corporation <www.imatix.com>
...
*/
...
private:
...
// Return address, if any
std::string m_reply_to; // <<------------------------- RETURN ADDRESS
,用于存储返回地址,如recv()
:
// We should pop and save as many addresses as there are
// up to a null part, but for now, just save one...
m_reply_to = msg->unwrap ();
何时设置?
取自源代码,它可能发生在recv()
:
// ---------------------------------------------------------------------
// Send reply, if any, to broker and wait for next request.
zmsg *
recv (zmsg *&reply_p)
{
// Format and send the reply if we were provided one
zmsg *reply = reply_p;
assert (reply || !m_expect_reply);
if (reply) {
assert (m_reply_to.size()!=0);
...
相关文章:
- OpenCV - Python 断言错误:SAD 算法 - 立体相机视差图计算
- 我收到一个断言错误,但是当我编写 cout 语句时,它会消失
- 尝试删除指向派生对象的基指针时断言错误
- Sysmalloc:使用向量的断言错误
- OpenCV CV 查找单应断言错误计数器 = > 4
- Mat的convertTo函数在OpenCV中将灰度图像的类型转换为CV_32F时抱怨断言错误
- 是什么导致我的C 代码中的断言错误
- 迭代器取消引用断言错误
- boost::shared_ptr 断言错误与 boost::asio:io_service
- CDao数据库断言错误
- STL 迭代器:断言错误
- 断言错误,字符串下标超出范围
- 调试断言错误-OpenCV
- 向量push_back会导致断言错误,但列表push_back有效
- 如何在子进程中禁用断言错误对话框
- OpenCV.norm中的断言错误
- 将功能区添加到现有的非功能区 mfc 项目 - 在 VS2010 中断言错误
- 访问指向像素openCV的指针时发生断言错误
- 断言错误,即使在使用 new 初始化字符指针后也是如此
- 使用结构向量 c++ 的断言错误