




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、消息队列通信实验报告实验6消息队列通信实验目的1、了解什么是消息、消息队列2、掌握消息传送的机理实验内容1、 消息的创建、发送和接收。使用系统调用 msgget( ),msgsnd( ),msgrev(),及 msgctl()编制一长度为1 k 的消息 发送和接收的程序。Msgqid.c#in elude #in elude#i nclude#in clude#defi ne MSGKE Y 75/* 定义关键词 MEGKEY*/struct msgform/* 消息结构*/long mtype;char mtext1030; /* 文本长度 */msg;int msgqid,i;void C
2、LIENT() int i;msgqid=msgget(MSGKE Y,0777); for(i=10;i=1;i-)msg.mtype=i;prin tf(clie nt)se ntn);msgsnd(msgqid,&msg,1024,0); /* 发送消息 msg 入msgid消息队列*/exit(0);void SERVER()msgqid=msgget(MSGKE Y,0777|IPC_CREAT);/*由关键字获得消息队列*/domsgrcv(msgqid,&msg,1030,0,0);/* 从 msgqid队列接收消息msg */prin tf(server)receivedn);
3、while(msg.mtype!=1); /* 消息类型为1时,释放队列*/msgctl(msgqid,IPC_RMID,O); exit(O);mai n()while (i=fork()=-1);if(!i) SERVER();while (i=fork()=-1);if(!i) CLIENT();wait(O);wait(O);实验结果:rc at fiscal host:-1 X日& Edit胚m刃Jerminil labs H*lpmsgqid.c:32: warnings lnconpatlble lrrpliclt declaration of built-in function
4、 *ckLrootjdLQcainost j# .ymsgqLd I cl lent Jsprtfclient)sentI client)sentclient)sentclient)sentclient)sentcliont )s?nt;ciiefit)snt:client)sentI client)sentI server)received server)receivedI server)receivedserver)received|se rver J re匚电直打时Ise rver)rece丄h已dserver)received|server)receivedserve it)皀serv
5、er)receivedrootlocolhost -書,2、选做实验:模拟从c/s通信客户端client功能:1)显示服务功能菜单En ter your choice:1. Save noney2. Take money2)接收用户键入的功能号进行选择;3)将用户键入的功能号作为一条消息发送到消息队列,然后结束 服务端功能:1)从消息队列接收client发送的一条消息;2)根据消息作如下处理:若消息为“ 1”,创建子进程1,子进程1加载服务模块save,该模块显示 以下信息: Your money was saved!若消息为“ 2”,创建子进程2,子进程2加载服务模块take,该模块显示以下
6、信息:Please take your mon ey!3) 等待子进程终止后,server消息对列结束。 注意:1) save和take要事先编译连接好,放在同一目录下;2)先运行客户端进程,再运行服务端进程。1、client.c#in clude #i nclude #in clude #i nclude #i nclude #defi ne MSGKE Y 75 struct msgform long mtype;char mtext1000;msg;int msgqid;void clie nt()/*打开int i;msgqid=msgget(MSGKE Y,0777);75#消息队列
7、*/for(i=20;i=1;i-)msg.mtype=i;prin tf(clie nt)se nt%dn,i);sleep(3);/*发送msgs nd(msgqid,&msg,1024,0);消息*/exit(O);mai n()clie nt();server.c#in clude #in clude #in clude #in clude #in clude #defi ne MSGKE Y 75struct msgform long mtype;char mtext1000;msg;int msgqid;void server() msgqid=msgget(MSGKE Y,077
8、7|IPC_CREAT);/*创建75#消肖息队列*/domsgrcv(msgqid,&msg,1030,0,0);/* 接收消息*/prin tf(server)received %ldn,msg.mtype); sleep(3);while(msg.mtype!=1); msgctl(msgqid,IPC_RMID,O); /* 删 除消息 队 列,归还资源*/exit(O); mai n()server();实验结果:rootlo c a Iho st:File Edit ViewTerminalTabs 旦 elprootlocalhostgcc-o clientrootlocalho
9、st. /client(client)sent20(cllent)sent19(client)sent18(client)sent17(client)sent16(client)sent15(client)sent14(cllent)sent13(client)sent12(client)sent11(client)sent10(client)sent9(client)sent8(client)sent7(client)sent6(client)sent5(client)sent4(client)sent3(client)sent2(client)sent1rootlocalhost # 11
10、client crootJlocalhost:-*File Edit View Terminal labs Helprootlocalhost -# gcc -o serverrootQlocalhost # ./server(server)received20(server)received19(server)received18(server)received17(server)received16(server)received15(server)received14(server)received13(server)received12(server)received11(server)received10(server)received9
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年绿色建筑混凝土浇筑环保承包合同
- 二零二五年加油站品牌形象设计与推广合同
- 2025版工地施工质量检验人员劳动合同范本
- 2025年度程海生态环境保护与修复工程合同
- 硫酸运输合同范本(二零二五年度)
- 二零二五年度房地产项目合同档案管理标准
- 二零二五年度:人工智能股票与股权分配合作协议
- 二零二五年度玻璃幕墙工程设计与施工合同
- 《肝衰竭诊治指南(2024年版)》全面解读
- 2026届广西壮族自治区钦州市浦北县中考语文押题卷含解析
- 节水小卫士课件
- 新型纳米材料毒性防控
- 2025年4月自考02895病原生物学与免疫学基础试题
- 医疗医院礼仪培训课件
- 无人机低空应用的环境影响评估-洞察阐释
- 药厂使用仪器管理制度
- 煤矿应急救援培训课件
- 小学生预防校园霸凌课件
- 照护师考试试题及答案
- 急救仪器设备管理规范
- 2025-2030年中国电动两轮车共用行业市场现状供需分析及投资评估规划分析研究报告
评论
0/150
提交评论