9.30消息队列

这篇具有很好参考价值的文章主要介绍了9.30消息队列。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

发送方:

#include<myhead.h>

//消息结构体
typedef struct
{
	long msgtype;  //消息类型
	char data[1024];  //消息正文
}Msg_ds;

#define SIZE sizeof(Msg_ds)-sizeof(long)     //正文大小

int main(int argc, const char *argv[])
{
	//1.创建key值
	key_t key;
	if((key = ftok("/",'k'))==-1){
		perror("ftok error");
		return -1;
	}

	//2.创建消息队列
	int msgid;
	if((msgid = msgget(key,IPC_CREAT|0664))==-1){
		perror("msgget error");
		return -1;
	}

	//3.向消息队列中发送数据
	Msg_ds msg = {.msgtype = 100};

	while(1){
		printf("请输入消息内容:");
		fgets(msg.data,sizeof(msg.data),stdin);  //从终端输入字符串
		//将字符串的\n换成\0
		msg.data[strlen(msg.data)-1] = 0;

		//将消息发送到消息队列中
		if(-1==msgsnd(msgid,&msg,SIZE,0)){
			perror("msgsnd error");
			return -1;
		}

		if(0==strcmp(msg.data,"quit")){
			break;
		}

	}

	//4.获取消息队列的状态
	struct msqid_ds msgds;
	//调用状态
	msgctl(msgid,IPC_STAT,&msgds);   //将消息队列的状态放入msgds变量中

	printf("mode = %#o\n",msgds.msg_perm.mode);
	printf("size = %ld\n",msgds.msg_cbytes);
	printf("qnum = %ld\n",msgds.msg_qnum);
	printf("lspid = %#x\n",msgds.msg_lspid);

	return 0;
}

接收方:

#include<myhead.h>

//消息结构体
typedef struct
{
	long msgtype;  //消息类型
	char data[1024];  //消息正文
}Msg_ds;

#define SIZE sizeof(Msg_ds)-sizeof(long)     //正文大小

int main(int argc, const char *argv[])
{
	//1.创建key值
	key_t key;
	if((key = ftok("/",'k'))==-1){
		perror("ftok error");
		return -1;
	}

	//2.创建消息队列
	int msgid;
	if((msgid = msgget(key,IPC_CREAT|0664))==-1){
		perror("msgget error");
		return -1;
	}

	//3.从消息队列中取数据
	Msg_ds msg;

	while(1){

		//从消息队列中取数据
		//第一个0表示取消息的类型,每次都是取第一个
		//第二个0表示阻塞方式从消息队列中取数据
		if(-1==msgrcv(msgid,&msg,SIZE,0 ,0)){
			perror("msgrcv error");
			return -1;
		}

		if(0==strcmp(msg.data,"quit")){
			break;
		}

		printf("rcv:%s\n",msg.data);

	}

	//4.删除消息队列
	msgctl(msgid,IPC_RMID,NULL);

	return 0;
}

效果:

9.30消息队列,前端,数据库文章来源地址https://www.toymoban.com/news/detail-730162.html

到了这里,关于9.30消息队列的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • mysql面试题30:什么是数据库连接池、应用程序和数据库建立连接的过程、为什么需要数据库连接池、你知道哪些数据库连接池

    该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 数据库连接池是一种用于管理和复用数据库连接的技术。它是在应用程序和数据库之间建立一组数据库连接,并以池的形式存储起来,每当应用程序需

    2024年02月07日
    浏览(54)
  • 30万个名字汉字起名中文取名ACCESS\EXCEL数据库

    虽然汉字#起名名字#的数据库已经有一些,比如7千多汉字起名参考大典ACCESS数据库、汉字起名中文起名宝宝起名ACCESS数据库,但是今天发现了一个数据库,他是在《7千多汉字起名参考大典》的基础上增加了30万个男孩女孩的名字实例。非常适合于比如固定了名字的第二个字,

    2024年02月07日
    浏览(40)
  • openGauss学习笔记-224 openGauss性能调优-系统调优-数据库系统参数调优-数据库并发队列参数调优

    数据库提供两种手段进行并发队列的控制,全局并发队列和局部并发队列。 224.1 全局并发队列 全局并发队列采用GUC参数max_active_statements控制数据库主节点上运行并发执行的作业数量。采用全局并发队列机制将控制所有普通用户的执行作业,不区分复杂度,即执行语句都将作

    2024年02月22日
    浏览(48)
  • 数据库管理系统(基于前端+后端+数据库)

      库存管理系统 包括模块: (1)基本信息管理。 (2)商品入库管理。 (3)商品出库管理。 (4)商品查询管理。 (5)查看商品目录。 实训步骤: 开发环境:html , css , js , python,Mysql,pycharm 需求分析: 和其他数据库系统相比, MySQL 有点与众不同,它的架构可以在多种

    2024年02月04日
    浏览(68)
  • SQL server附加数据库时出错,提示说: 附加数据库时出错。有关详细信息,请单击“消息”列中的超链接

            其中一种解决办法:可能是数据库权限不够,要 把.MDF和.LDF两个数据库文件都打开权限          要记得 把同名的需要重新配置的文件删除之后重新附加 !!         操作步骤如下:         对于.MDF文件:右键,点击“属性”         点击“安全”      

    2024年01月18日
    浏览(76)
  • 第4天:基础入门-30余种加密编码进制&;Web&;数据库&;系统&;代码&;参数值

    1.了解加密编码进制在安全测试中的存在 2.掌握常见的加密解密编码解码进制互转的操作 3.了解常见的加密解密编码解密进制互转的影响 旨在解决类似疑问,提供思路: 你是否碰到不知道的加密方式? 你是否碰到无法找到的解密平台? 你是否碰到不知道如何解密的字符串?

    2024年02月06日
    浏览(54)
  • 数据库设计与前端框架

    学习目标: 理解多租户的数据库设计方案 熟练使用PowerDesigner构建数据库模型理解前端工程的基本架构和执行流程 完成前端工程企业模块开发 多租户技术(Multi-TenancyTechnology)又称多重租赁技术:是一种软件架构技术,是实现如何在多用户环境下 (此处的多用户一般是面向

    2024年02月01日
    浏览(34)
  • 前端数据库与缓存实践

    前端数据库与缓存技术在现代网络应用中发挥着越来越重要的作用。随着前端技术的不断发展,前端数据库和缓存技术也在不断发展和进化。这篇文章将从以下几个方面进行阐述: 背景介绍 核心概念与联系 核心算法原理和具体操作步骤以及数学模型公式详细讲解 具体代码实

    2024年02月21日
    浏览(35)
  • 前端数据库indexedDB入门

    阮一峰老师的分享文档:浏览器数据库 IndexedDB 入门教程 - 阮一峰的网络日志 官方API文档,纯英文,不过提供的代码很有用:Indexed Database API 3.0         indexDB是HTML5的新概念,indexedDB是一个用于在浏览器中存储较大数据结构的Web API, 并且提供了索引功能以实现高性能查找

    2023年04月08日
    浏览(39)
  • 软件是什么?前端,后端,数据库

    软件是什么? 由于很多东西没有实际接触,很难理解,对于软件的定义也是各种各样。但是我还是不理解,软件开发中的 前端,后端,数据库到底有什么关系呢 ! 这个问题足足困扰了三年半,练习时长三年半,希望能为你解惑! 前端 : 数据渲染 发送请求 接受响应数据

    2024年01月20日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包