Zeromq:如何在 C++ 中访问 tcp 消息

2024-01-03

我是 ZeroMQ 的新手,正在学习 echo 客户端-服务器模式(请求-回复)的 C++ hello-world 示例。服务器看起来像:

//
// Hello World server in C++
// Binds REP socket to tcp://*:5555
// Expects "Hello" from client, replies with "World"
//
#include <zmq.hpp>
#include <string>
#include <iostream>
#include <unistd.h>

int main () {
    // Prepare our context and socket
    zmq::context_t context (1);
    zmq::socket_t socket (context, ZMQ_REP);
    socket.bind ("tcp://*:5555");

    while (true) {
        zmq::message_t request;

        // Wait for next request from client
        socket.recv (&request);
        std::cout << "Received Hello" << std::endl;

        // Do some 'work'
        sleep (1);

        // Send reply back to client
        zmq::message_t reply (5);
        memcpy ((void *) reply.data (), "World", 5);
        socket.send (reply);
    }
    return 0;
}

现在我的问题:如何访问/读取 socket.recv() 的真实数据?试:

 std::cout << request << std::endl;

导致出现错误消息:

 error: no match for ‘operator<<’ in ‘std::operator<< [with _Traits = 
 std::char_traits<char>](((std::basic_ostream<char, std::char_traits<char> >&)
 (& std::cout)), ((const char*)"Received Hello")) << request’

发送消息的客户端也是如此。我找不到显示真实消息的方法......


hello world 示例只进行了一半并输出硬编码值:

std::cout << "Received Hello" << std::endl;

打印实际响应可以按如下方式完成:

zmq::message_t reply;
socket.recv (&reply);

std::string rpl = std::string(static_cast<char*>(reply.data()), reply.size());

std::cout << rpl << std::endl;

zhelpers.hpp 中还有一些其他有用的示例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Zeromq:如何在 C++ 中访问 tcp 消息 的相关文章

  • 如何将 std::string& 转换为 C# 引用字符串

    我正在尝试将 C 函数转换为std string参考C 我的 API 如下所示 void GetStringDemo std string str 理想情况下 我希望在 C 中看到类似的东西 void GetStringDemoWrap r
  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • 没有特殊字符的密码验证器

    我是 RegEx 的新手 已经进行了大量搜索 但没有找到任何具体内容 我正在编写一个验证密码字符串的正则表达式 可接受的字符串必须至少具有 4 种字符类型中的 3 种 数字 小写字母 大写字母 特殊字符 我对包含有一个想法 也就是说 如果这
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • C++11 删除重写方法

    Preface 这是一个关于最佳实践的问题 涉及 C 11 中引入的删除运算符的新含义 当应用于覆盖继承父类的虚拟方法的子类时 背景 根据标准 引用的第一个用例是明确禁止调用某些类型的函数 否则转换将是隐式的 例如最新版本第 8 4 3 节
  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • 为什么 GCC 不允许我创建“内联静态 std::stringstream”?

    我将直接前往 MCVE include
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 对类 static constexpr 结构的未定义引用,g++ 与 clang

    这是我的代码 a cp p struct int2 int x y struct Foo static constexpr int bar1 1 static constexpr int2 bar2 1 2 int foo1 return
  • 需要帮助优化算法 - 两百万以下所有素数的总和

    我正在尝试做一个欧拉计划 http projecteuler net问题 我正在寻找 2 000 000 以下所有素数的总和 这就是我所拥有的 int main int argc char argv unsigned long int su
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • C# 列表通用扩展方法与非通用扩展方法

    这是一个简单的问题 我希望 集合类中有通用和非通用方法 例如List
  • 如何获取 EF 中与组合(键/值)列表匹配的记录?

    我有一个数据库表 其中包含每个用户 年份组合的记录 如何使用 EF 和用户 ID 年份组合列表从数据库获取数据 组合示例 UserId Year 1 2015 1 2016 1 2018 12 2016 12 2019 3 2015 91
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • C 函数 time() 如何处理秒的小数部分?

    The time 函数将返回自 1970 年以来的秒数 我想知道它如何对返回的秒数进行舍入 例如 对于100 4s 它会返回100还是101 有明确的定义吗 ISO C标准没有说太多 它只说time 回报 该实现对当前日历时间的最佳近似 结
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • Office Communicator 状态如何工作?

    我有兴趣了解更多有关微软办公通讯器 http office microsoft com en us communicator default aspxIM 客户端 以及它如何确定您的存在 即您是否在计算机旁或不在计算机旁 任何人都可以向我指
  • 如何允许Tomcat WAR应用程序写入文件夹

    我想要我的网络应用程序作为战争部署ROOT war具有写入权限 var www html static images这样它就可以将上传和转换的图像写入该文件夹 以便 nginx 可以静态地为其提供服务 目前它不起作用并触发java nio
  • 易失性无符号整型 * const

    下面这行代码的目的是什么const关键词 volatile unsigned int const UART0DR unsigned int 0x10009000 我明白了volatile unsigned int 有点 但为什么是const
  • 如何在ag-grid中预设列过滤器

    我有一个Ionic Angular应用程序使用ag grid 我希望某些网格在加载网格时自动应用过滤器 用户无需执行任何操作 我尝试了以下方法 onGridReady params params api sizeColumnsToFit g
  • JavaScript 中的 IIFE 调用

    我见过两种使用 IIFE 的方法 我知道还有更多 function console log this call this function console log this 有什么理由使用 call this 在第一个上 惯于 在函数内产生
  • 可能的错误? xlwings 无法运行 Excel 宏? [复制]

    这个问题在这里已经有答案了 我在让 xlwings 从 Python 运行宏时遇到问题 尽管遵循 xlwings 文档中的代码 但我无法让 xlwings 执行 Excel 宏 例如 在名为 Book xlsm 的 Excel 工作簿中 i
  • 如何使用 z3py 进行增量求解

    我正在使用 Z3 求解器的 python API 来搜索优化的时间表 它工作得很好 除了有时即使对于小图也非常慢 但有时非常快 原因可能是我的调度问题的约束相当复杂 我试图加快速度 并偶然发现了一些关于增量解决方案的文章 据我了解 您可以使
  • jQuery UI Sortable -- 如何取消拖动/排序的项目上的单击事件?

    我有一个jQuery UI 可排序 http docs jquery com UI Sortable列表 可排序的项目还附加了一个单击事件 有没有办法防止拖动项目后触发单击事件 ready function my sortable sort
  • 获取 YouTube 直播 URL

    我需要一种方法来获取 YouTube 直播的 URL 最好是每种质量的 URL 即 240p 360p 到目前为止我尝试过的 使用Wireshark 不知道如何应用适当的过滤器 使用 urlsnoopers 找不到任何在 Linux 中有效
  • ngImgCrop 依赖注入在 AngularJs 中无法正常工作

    我在用ng img 作物 in angular 通过 bower install save ngImgCrop 安装它并在通过 grunt 命令运行它时注入依赖项后 出现错误 Uncaught Error injector modulerr
  • 忽略 .ackrc 中的子目录

    我想配置我的 ackrc 这样 ack 就不会在我的 test coverage 文件夹中查找 到目前为止我已经得到了这个 ignore dir coverage 这可行 但感觉不太正确 ignore dir test coverage 问
  • 将elasticsearch 2.x转储到mongodb并返回到ES 6.x

    这个问题更多的是理论问题而不是源代码 我有一个 ES 2 x 节点 其中有超过 1 2TB 的数据 我们有 40 多个索引 每个索引至少有 1 种类型 这里 ES 2 x 被用作数据库而不是搜索引擎 用于将数据转储到 ES 2 x 的源丢失
  • createInsecureRfcommSocketToServiceRecord 中频繁出现随机故障(服务发现失败)

    我正在尝试在两个 Android 设备之间建立不安全的蓝牙套接字连接 我控制两端的软件 一端用途listenUsingInsecureRfcommWithServiceRecord监听连接 另一端使用createInsecureRfcomm
  • Python:以数值方式求积分的主值

    我正在使用 python 数值求解积分 where a x 可以取任何值 正数 负数 1 1 内部或外部 eta 是一个无穷小的正量 有第二个外积分 它改变 a x 的值 I m trying to solve this using the
  • 从 iframe 内部关闭 Bootstrap 模式

    打开带有 iframe 的 Twitter Bootstrap Modal 的页面 div class modal hide fade div class modal header div div
  • 是否可以在TFS SDK中查询工作项自定义字段

    我有几个工作项包含名为 参考 ID 的自定义字段 是否可以在此自定义字段上使用 wiql 进行查询 目前我正在使用以下方法 TFS 中的 foreach 项目 形成wiql WorkItemCollection workItemCollec
  • 使用 Struts 2 输出时出现 JSON 异常错误

    当我在浏览器中执行结果时 出现 JSON 异常错误 如下所示 type Exception report message description The server encountered an internal error that p
  • 如何在flutter中将来自api的复杂json响应存储在本地数据库中?

    我想保存来自 api 的整个 json 响应 我尝试使用 SQFLITE 库来存储 但无法实现存储完整的 json 因为它需要以表格式存储 我对扑动很陌生 任何人都可以建议我如何实现这一目标 下面我附上我的示例 json 供您参考 resu
  • 从 std::string_view 派生的对象的比较在 MSVC 中不明确

    TL DR 我是否可以期望下面的代码可以在任何符合 c 17 的 c 工具链 基于当前的 c 17 提案 上进行编译 而 MSVC 未能这样做是其实现中的一个错误 include
  • Zeromq:如何在 C++ 中访问 tcp 消息

    我是 ZeroMQ 的新手 正在学习 echo 客户端 服务器模式 请求 回复 的 C hello world 示例 服务器看起来像 Hello World server in C Binds REP socket to tcp 5555