在 Ubuntu 下使用 rabbitmq-c 库进行 RabbitMQ 消息收发的完整示例代码如下

在 Ubuntu 下使用 rabbitmq-c 库进行 RabbitMQ 消息收发的完整示例代码如下。这个示例将包括声明队列、绑定路由键、发送消息、消费消息等步骤,并且会包含错误处理。
安装 rabbitmq-c 库
首先确保已经安装了 rabbitmq-c 库。可以通过以下命令在 Ubuntu 上安装:
sudo apt-get install librabbitmq-dev
示例代码
以下是一个简单的 C++ 程序,展示了如何使用 rabbitmq-c 库连接到 RabbitMQ 服务器,并进行消息收发。

#include <iostream>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <unistd.h>
#include <amqp.h>
#include <amqp_tcp_socket.h>// RabbitMQ 服务器连接信息
#define RABBITMQ_HOSTNAME   "localhost"
#define RABBITMQ_PORT       5672
#define RABBITMQ_USERNAME   "guest"
#define RABBITMQ_PASSWORD   "guest"// 队列和交换机名称
#define QUEUE_NAME          "test_queue"
#define EXCHANGE_NAME       "test_exchange"
#define ROUTING_KEY         "test_routing_key"// 错误处理宏
#define die(message) \do { \std::cerr << (message) << std::endl; \std::exit(1); \} while (0)int main() {amqp_socket_t *socket = NULL;amqp_connection_state_t conn;// 初始化连接conn = amqp_new_connection();// 建立 TCP 连接socket = amqp_tcp_socket_new(conn);if (!socket) {die("创建 TCP socket 失败");}int status = amqp_socket_open(socket, RABBITMQ_HOSTNAME, RABBITMQ_PORT);if (status) {die("打开 RabbitMQ 连接失败");}// 登录到 RabbitMQ 服务器amqp_rpc_reply_t login_reply = amqp_log

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

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

相关文章

git创建子模块

有种情况我们经常会遇到&#xff1a;某个工作中的项目需要包含并使用另一个项目。 也许是第三方库&#xff0c;或者你独立开发的&#xff0c;用于多个父项目的库。 现在问题来了&#xff1a;你想要把它们当做两个独立的项目&#xff0c;同时又想在一个项目中使用另一个。 Git …

【因果推断python】44_评估因果模型2

目录 累积弹性曲线 累积增益曲线 考虑差异 关键思想 累积弹性曲线 再次考虑将价格转换为二元处理的说明性示例。我们会从我们离开的地方拿走它&#xff0c;所以我们有弹性处理带。我们接下来可以做的是根据乐队的敏感程度对乐队进行排序。也就是说&#xff0c;我们把最敏感…

spring中@Conditional

多环境切换 java配置使用profile Profile设置在某个环境下&#xff0c;spring注入对应的bean public class JavaConfig {BeanProfile("dev")DataSource devDs(){DataSource ds new DataSource();ds.setUrl("dev");ds.setUsername("dev");ret…

2024年了,C++还值得学吗?6个C++的就业方向打消你的疑虑

C语言是一种广泛应用于计算机编程的高级编程语言&#xff0c;自从其首次问世以来&#xff0c;就在软件开发领域取得了广泛的应用和成功。作为一种强大的编程语言&#xff0c;C语言不断发展和改进&#xff0c;也在不断地适应新的技术和需求。在未来几年&#xff0c;C语言将继续保…

计算机视觉全系列实战教程:(十一)边缘检测(差分、Roberts、Sobel、Prewitt、LoG、基于形态学的边缘检测等)

1.边缘检测概述 (1)What 边缘检测&#xff1a;找到有差异的相邻像素锐度&#xff1a;边缘的对比度图像锐化&#xff1a;增加边缘的对比度边缘点&#xff1a;图像中灰度显著变化的点边缘段&#xff1a;边缘点坐标及方向的总和&#xff0c;边缘的方向可以是梯度角轮廓&#xff…

手把手!从头构建LLaMA3大模型(Python)

1. 前期准备 让我们先来想一想大概需要做什么。 首先是模型架构的选择。原工作用的是 GPT Neo 架构&#xff08;可以看他们的 config&#xff09;&#xff0c;这个算是很老的模型了&#xff0c;最初是 EleutherAI 用来复现追踪 GPT-3 的工作的&#xff0c;现在用的也比较少了…

洛谷 P1726:上白泽慧音 ← Tarjan算法

【题目来源】https://www.luogu.com.cn/problem/P1726【题目描述】 在幻想乡&#xff0c;上白泽慧音是以知识渊博闻名的老师。春雪异变导致人间之里的很多道路都被大雪堵塞&#xff0c;使有的学生不能顺利地到达慧音所在的村庄。因此慧音决定换一个能够聚集最多人数的村庄作为新…

鸿蒙开发组件:【创建DataAbility】

创建DataAbility 实现DataAbility中Insert、Query、Update、Delete接口的业务内容。保证能够满足数据库存储业务的基本需求。BatchInsert与ExecuteBatch接口已经在系统中实现遍历逻辑&#xff0c;依赖Insert、Query、Update、Delete接口逻辑&#xff0c;来实现数据的批量处理。…

redis复习

redis知识点 redis持久化redis 订阅发布模式redis主从复制哨兵模式redis雪崩&#xff0c;穿透缓存击穿&#xff08;请求太多&#xff0c;缓存过期&#xff09;缓存雪崩 redis持久化 redis是内存数据库&#xff0c;持久化有两种方式&#xff0c;一种是RDB&#xff08;redis dat…

【计算机网络】[第4章 网络层][自用]

1 概述 (1)因特网使用的TCP/IP协议体系(四层)的网际层,提供的是无连接、不可靠的数据报服务; (2)ATM、帧中继、X.25的OSI体系(七层)中的网络层,提供的是面向连接的、可靠的虚电路服务。 (3)路由选择分两种: 一种是由用户or管理员人工进行配置(只适用于规…

图解Linux内核(基于6.x):解读Linux内存反向映射之匿名映射

文章目录 &#x1f4d1;前言一、匿名映射的mapping二、推荐阅读2.1 一图速览2.2 内容简介 &#x1f4d1;前言 内存映射中&#xff0c;我们经常讨论的是由虚拟内存定位物理内存&#xff08;也就是folio或者page&#xff09;&#xff0c;实际上在很多场景中&#xff08;比如内存回…

linux写代码环境和工具

基础指令 目录 前言 二、yum工具的使用 1.yum是什么&#xff1f; 2.查看软件包 3.配置sudo 4.如何卸载软件 三、vim的使用 1. vim的基本概念 2. vim的基本操作 3. vim正常模式命令集 4.简单vim配置 四、Linux编译器-gcc/g使用 1、格式 2、gcc选项 3.gcc/g工作和…

浅谈Java23种设计模式之11种行为型模式的使用场景(第三部分)

前言 行为型设计模式实际使用场景第三部分; 1.状态模式&#xff08;State&#xff09; 概念: 它允许对象在其内部状态改变时改变它的行为&#xff0c;对象看起来好像修改了它的类。这种模式主要用于当一个对象的行为依赖于它的状态&#xff08;对象的状态改变&#xff0c;行…

专业技能篇--算法

文章目录 前言经典算法思想总结一、贪心算法二、动态规划三、回溯算法四、分治算法 前言 这篇简单理解一些常见的算法。如果面试的时候问到相关的算法&#xff0c;能够应付一二。 经典算法思想总结 一、贪心算法 思想&#xff1a;贪心算法是一种在每一步选择中都采取在当前状…

Python——Gradio

什么是 Gradio&#xff1f; Gradio 是一个开源的 Python 库&#xff0c;用于创建用户友好的、交互式的网页界面。这个界面可以用来展示和测试机器学习模型&#xff0c;或者任何需要用户输入的 Python 应用程序。Gradio 的目标是让开发者快速地将他们的机器学习模型部署为可供他…

Vue CLI,Vue Router,Vuex

前言 Vue CLI、Vue Router 和 Vuex 都是 Vue.js 生态系统中的重要组成部分&#xff0c;它们在构建 Vue 应用程序时扮演着关键角色。 Vue CLI Vue CLI 介绍 Vue CLI 是 Vue.js 的官方命令行工具&#xff0c;用于快速搭建 Vue.js 项目。它提供了一个图形界面&#xff08;通过…

Effective C++ 改善程序与设计的55个具体做法笔记与心得 1

一. 让自己习惯C 1. 视C为一个语言联邦 2. 尽量以const, enum, inline替换#define #define CALL_WITH_MAX(a,b) f((a) > (b) ? (a) : (b))int a 5 , b 0;CALL_WITH_MAX(a,b); // a 6, b 0 CALL_WITH_MAX(a,b10); // a 8, b 0你观察到的这个现象是由于宏替换(C prep…

工程打包与运行

黑马程序员Spring Boot2 文章目录 先点击cean&#xff0c;确保打包之前是个干净的环境点击package进行打包&#xff0c;打包成功之后可以看到target文件夹下的文件 到项目目录下使用终端打开&#xff0c;并使用以下命令运行打包好的程序 如果遇到没有主清单属性的问题&#xff…

搜维尔科技邀您共赴2024第四届轨道车辆工业设计国际研讨会

会议内容 聚焦“创新、设计、突破”&#xff0c;围绕“面向生命健康、可持续发展的轨道交通系统” 为主题&#xff0c;从数字化、智能化、人性化、绿色发展等方面&#xff0c;探索轨道交通行业的设计新趋势及发展新机遇。 举办时间 2024年7月10日-12日 举办地点 星光岛-青岛融…