当前位置: 首页 > news >正文

9.30消息队列实现进程之间通信方式代码,现象

服务端

#include <myhead.h>#define ERR_MSG(msg) do{\fprintf(stderr,"__%d__:",__LINE__);\perror(msg);\
}while(0)typedef struct{	long msgtype; 	//消息类型char data[1024]; 	//消息正文
}Msg;#define SIZE sizeof(Msg)-sizeof(long)int main(int argc, const char *argv[])
{//创建key值int key;if(-1==(key=ftok("/",'k'))){ERR_MSG("ftok error");return -1;}//创建消息队列int msgid;if(-1==(msgid=msgget(key,IPC_CREAT|0664))){ERR_MSG("msgget error");return -1;}//向消息队列中发送信息Msg msg={.msgtype=1};while(1){printf("请输入消息内容>>>");fgets(msg.data,sizeof(msg.data),stdin);msg.data[strlen(msg.data)-1]=0;//将消息发送到消息队列if(-1==msgsnd(msgid,&msg,SIZE,0)){ERR_MSG("msgsnd error");return -1;}//退出if(!strcmp(msg.data,"quit")){break;}}return 0;
}

客户端

 
#include <myhead.h>#define ERR_MSG(msg) do{\fprintf(stderr,"__%d__:",__LINE__);\perror(msg);\
}while(0)typedef struct{long msgtype; 	//消息类型char data[1024];  	//消息正文
}Msg;#define SIZE sizeof(Msg)-sizeof(long)int main(int argc, const char *argv[])
{//创建key值int key;if(-1==(key=ftok("/",'k'))){ERR_MSG("ftok error");return -1;}//创建消息队列int msgid;if(-1==(msgid=msgget(key,IPC_CREAT|0664))){ERR_MSG("msgget error");return -1;}//从消息队列中取数据Msg msg;while(1){//接收信息if(-1==msgrcv(msgid,&msg,SIZE,0,0)){ERR_MSG("msgrcv error");return -1;}printf("rcv:%s\n",msg.data);//退出if(!strcmp(msg.data,"quit")){break;}}//删除消息队列msgctl(msgid,IPC_RMID,NULL);return 0;
}

http://www.lryc.cn/news/179376.html

相关文章:

  • 【Oracle】Oracle系列之十三--游标
  • 【Linux】——基操指令(二)
  • 如何用Angular和NativeScript开发IOS程序?
  • python 使用 scapy 扫描内网IP或端口
  • 14:00面试,14:08就出来了,问的问题有点变态
  • Spring Security 简单token配置
  • 2023 “华为杯” 中国研究生数学建模竞赛(F题)深度剖析|数学建模完整代码+建模过程全解全析
  • FFmpeg 命令:从入门到精通 | ffplay 简单过滤器
  • 应用在手机触摸屏中的电容式触摸芯片
  • 计算机网络之传输层
  • vue下载在前端存放的pdf文件
  • 自学WEB后端05-Node.js后端服务链接数据库redis
  • 【计算机网络】 基于TCP的简单通讯(客户端)
  • RabbitMQ配置
  • 火热报名中 | 2天峰会、20+热门议题,AutoESG 2023数智低碳---中国汽车碳管理创新峰会亮点抢先看!
  • 机器学习——seaborn实用画图方法简介
  • leetCode 188.买卖股票的最佳时机 IV 动态规划 + 状态压缩
  • Lua学习笔记:debug.sethook函数
  • 信息化发展74
  • Go-Ldap-Admin | openLDAP 同步钉钉、企业微信、飞书组织架构实践和部分小坑
  • elasticsearch+logstash+kibana整合(ELK的使用)第一课
  • 宝塔 php修改了php.ini配置不生效
  • Unrecognized option ‘stream_loop‘.(版本不匹配,利用make编译安装)
  • 【考研数学】概率论与数理统计 —— 第三章 | 二维随机变量及其分布(2,常见的二维随机变量及二维变量的条件分布和独立性)
  • 力扣 -- 10. 正则表达式匹配
  • Spring源码分析(四) Aop全流程
  • 定义现代化实时数据仓库,SelectDB 全新产品形态全面发布
  • Linux系统编程(七):线程同步
  • Arcgis克里金插值报错:ERROR 999999: 执行函数时出错。 表名无效。 空间参考不存在。 ERROR 010429: GRID IO 中存在错误
  • 【网络协议】ARP协议