Jetson Linux 上安装ZMQ

news2024/11/23 11:37:10

1. 安装ZMQ 框架

apt-get install libzmq3-dev

2. 或者自己build ZMQ

https://github.com/zeromq/libzmq.git

参考官网教程

3. 安装CPPZMQ

CPPZMQ 是ZMQ 的友好的C++封装,只需要一个zmq.hpp 头文件即可

git clone https://github.com/zeromq/cppzmq.git 
cd cppzmq
mkdir build
cd build
cmake ..
make
sudo make install 

4. 一个简单的demo

cmake_minimum_required(VERSION 3.0)
project(ZeroMQ_Client)

# 设置 C++ 标准
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)

# 查找 ZeroMQ 库
find_package(PkgConfig REQUIRED)
pkg_check_modules(ZMQ REQUIRED libzmq)

find_package(cppzmq REQUIRED)
# 添加可执行文件

include_directories(
    ${cppzmq_INCLUDE_DIR}
)




add_executable(client main.cpp)

# 链接 ZeroMQ 库
target_link_libraries(client PUBLIC
${cppzmq_LIBRARY}
${ZMQ_LIBRARIES}
)
#include <zmq.hpp>
#include <iostream>

class Client {
public:
    Client(const std::string& server_address) : context_(1), socket_(context_, ZMQ_REQ) {
        socket_.connect(server_address);
        std::cout << "Connected" << std::endl;
    }

    void sendCommand(const std::string& command, const std::string& model_path) {
        // 发送命令
        zmq::message_t request(command.size());
        memcpy(request.data(), command.c_str(), command.size());
        socket_.send(request);

        // 等待服务器响应
        zmq::message_t reply;
        socket_.recv(&reply);
        if (std::string(static_cast<char*>(reply.data()), reply.size()) == "pong") {
            // 发送模型路径
            zmq::message_t modelRequest(model_path.size());
            memcpy(modelRequest.data(), model_path.c_str(), model_path.size());
            socket_.send(modelRequest);

            // 接收服务器对模型路径的处理结果
            socket_.recv(&reply);
            if (std::string(static_cast<char*>(reply.data()), reply.size()) == "OK") {
                std::cout << "Model loaded successfully" << std::endl;
            } else {
                std::cout << "Failed to load model" << std::endl;
            }
        }
    }

private:
    zmq::context_t context_;
    zmq::socket_t socket_;
};

int main() {
    // 服务器地址
    std::string server_address = "tcp://127.0.0.1:2222";

    // 创建客户端实例
    Client client(server_address);

    // 发送命令和模型路径
    std::string command = "ping";
    std::string model_path = "cyto2torch_0";
    client.sendCommand(command, model_path);

    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1815100.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LabVIEW进行负载测试

本文介绍了如何使用LabVIEW进行负载测试&#xff0c;通过一个具体案例详细讲解了测试系统的组成、工作原理和实现方法。系统采用先进的硬件和软件架构&#xff0c;结合LabVIEW的强大功能&#xff0c;成功实现了对设备的高效负载测试&#xff0c;确保了系统的可靠性和性能。 项…

【SpringCloud学习笔记】RabbitMQ(上)

1. RabbitMQ简介 官网地址&#xff1a;https://www.rabbitmq.com/ 2. 安装方式 安装前置准备&#xff1a; 此处基于Linux平台 Docker进行安装&#xff0c;前置准备如下&#xff1a; Linux云服务器 / 虚拟机Docker环境 安装命令&#xff1a; docker run \-e RABBITMQ_DEFAU…

养猫发现猫毛过敏?宠物空气净化器真的能拯救猫毛过敏吗?

广东省 猫咪是许多人梦寐以求的伴侣&#xff0c;但对于轻度猫毛过敏和鼻炎患者来说&#xff0c;养猫似乎是个遥不可及的梦想。我常在社交媒体上羡慕地观看朋友们的吸猫日常&#xff0c;却因过敏无法亲自养猫。这种遗憾驱使我寻找解决方案&#xff0c;从研究低过敏猫种到尝试空气…

使用Git进行代码版本管理

目录 1. 简介 2. 管理流程 2.1. 建立清晰的分支策略 2.2. 定期提交与合并 2.3. 使用标签来管理发布版本 2.4. 保持代码库的整洁 2.5. 利用Git钩子和CI/CD集成 3. 实现步骤 3.1. 建立仓库 3.2. 分支管理 3.3. 推送代码 ①首先切换到要 code 的分支&#xff0c;比如 d…

AM273X毫米波演示

介绍 毫米波演示展示了 AM273X SOC 使用毫米波 SDK&#xff08;软件开发工具包&#xff09;中的驱动程序的一些功能。它允许用户指定chirp配置文件并实时显示检测到的对象和其他信息。 以下是此演示功能的高级描述&#xff1a; 能够通过 UART 端口上的命令行界面 &#xff08;…

leetcode刷题-二叉树03

代码随想录二叉树part03|104.二叉树的最大深度、111.二叉树的最小深度、222.完全二叉树的节点个数 104.二叉树的最大深度111.二叉树的最小深度222.完全二叉树的节点个数 104.二叉树的最大深度 代码随想录文档讲解 LeetCode 斜体样式 本题在前一章节层序遍历时已完成。&#xff…

短视频矩阵筷子科技、抖去推、超级编导有那几家源头开发是自己底层框架做的-----

目前这几家都是自己技术团队搭建开发的&#xff0c;每家都有优势劣势产品上基本都已经成熟趋向于优化技术阶段。 云罗---抖去推&#xff1a;*** 将在CAP原则基础上使用分布式架构,对此网站的整体架构采用了基于B/S三层架构模式,将数据层、业务应用层、表现层分开。BS架构B/S&a…

第二届黄河流域团队赛个人wp

个人wp web 两个题都几乎是网上的原题&#xff0c;不想多说了&#xff0c;放个链接&#xff0c;重点记录一下自己第一次遇到的misc 冰蝎流量分析 web1 https://blog.csdn.net/qq_51768842/article/details/125153850 web2 https://blog.csdn.net/m0_73512445/article/detai…

北京医院共享轮椅小程序开发更贴心,更便捷

在大数据不断发展的今天&#xff0c;资源共享已随处可见&#xff0c;小到共享充电宝&#xff0c;共享雨伞&#xff0c;大到共享单车&#xff0c;汽车。这些常用资源的共享&#xff0c;充分实现了有限资源的最大化利用。 如今&#xff0c;众多北京医院&#xff0c;也结合自身实…

TQZC706开发板教程:10G光口arp测试

网盘分享&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1H-_hn1eAi-Byzn-4tcSFKA 提取码&#xff1a;q524 使用前需要设置时钟&#xff0c;调整右下角的拨码开关为↑↓↓↑↑ 从原理图中可以看出设置为156.25MHz&#xff0c;10Gige模式 启动模式设置为JTAG模式&#…

内地人真的被香港的工资震惊到了!香港身份真的很香

在我优才获批以前&#xff0c;我工资也就一两万&#xff0c;工作压力大又很焦虑&#xff0c;后来在一次和朋友吃饭上聊到了香港工资的话题&#xff0c;说这边的待遇水平比较高。&#x1f60e;&#x1f60e; . 那时候不相信&#xff0c;问了一些在香港工作的大学同学&#xff0c…

【机器学习基础】Python编程07:五个实用练习题的解析与总结

Python是一种广泛使用的高级编程语言,它在机器学习领域中的重要性主要体现在以下几个方面: 简洁易学:Python语法简洁清晰,易于学习,使得初学者能够快速上手机器学习项目。 丰富的库支持:Python拥有大量的机器学习库,如scikit-learn、TensorFlow、Keras和PyTorch等,这些…

颠覆与创新:探寻Facebook未来的发展路径

Facebook&#xff0c;这个曾经引领社交网络革命的巨头&#xff0c;在如今竞争激烈的科技市场中&#xff0c;正面临着前所未有的挑战和机遇。如何在不断变化的数字世界中保持竞争力&#xff0c;成为业界领先者&#xff0c;这是摆在Facebook面前的重要课题。本文将探寻Facebook未…

如何快速搭建自己的进销存系统?

什么是进销存系统&#xff1f; 进销存&#xff0c;是指企业管理过程中采购&#xff08;进&#xff09;—入库&#xff08;存&#xff09;—销售&#xff08;销&#xff09;的动态管理过程。进&#xff1a;指询价、采购到入库与付款的过程。进销存管理系统是对企业生产经营中物…

一分钟学习数据安全—自主管理身份SSI可验证凭证

在对SSI的概念、组成、架构以及用到的加密技术有了大概的了解之后&#xff0c;我们进入到SSI架构的核心&#xff1a;可验证凭证。 可验证凭证旨在实现以下两个目的&#xff1a; 提供数字钱包中的证书的数字版本。用一组关于标识符的声明“自上而下”证明身份&#xff0c;而非“…

Pycharm远程连接服务器配置

创建虚拟环境 conda create -n envName python指定python版本删除虚拟环境 conda remove -n envName --all查看所有虚拟环境 conda env list使用or激活虚拟环境 conda activate HINormer如何查看python编译器是在哪个虚拟环境中&#xff1a; 使用我们尊贵的2080Ti在安装配…

详解 Flink Table API 和 Flink SQL 之流处理中的表

一、关系型表和流处理表对比 关系型表/SQL流处理表处理的数据对象字段元组的有界集合字段元组的无限序列查询&#xff08;Query&#xff09;对数据的访问可以访问到完整的数据输入无法访问所有数据&#xff0c;必须持续“等待”流式输入查询终止条件生成固定大小的结果集后终止…

SyntaxError: Non-UTF-8 code starting with ‘\xbd‘ in file错误解决

在运用python的pandas和numpy的内容环境下&#xff0c;运行代码时发生以下错误&#xff1a; C:\ProgramData\Anaconda3\python.exe D:/zafile/py数据分析与应用/数据分析代码/14.2、紧急电话数据分析.pyFile "D:/zafile/py数据分析与应用/数据分析代码/14.2、紧急电话数据…

教你一招,告警恢复时如何拿到恢复时的值?

Prometheus 生态的原生做法&#xff0c;由于阈值是放在 promql 中的&#xff0c;恢复时的消息中难以拿到恢复时的值&#xff0c;夜莺 v7.0.0.beta10 版本开始&#xff0c;提供了一种较为简单的内置方式&#xff0c;解决这个问题。下面我们就来看一下如何实现这个能力。 升级方…

MATLAB画图时添加标注显示有效数字的位数,可以编辑此函数

本来系统有个函数&#xff0c;在图像窗口选择标注工具&#xff0c;再在图像窗口右击鼠标&#xff0c;选择"编辑文本更新函数..."&#xff0c;即打开系统的设置函数&#xff0c;可以修改最后一行&#xff1a; formattedValue [valueFormat num2str(value,4) removeV…