版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验6消息队列通信实验目的1、了解什么是消息、消息队列2、掌握消息传送的机理实验内容1、消息的创建、发送和接受。使用系统调用msgget(),msgsnd(),msgrev(),及msget1()编制一长度为1k的消息发送和接受的程序。Msgqid.c#incIude<stdio.h>#inckide<sys/types.h>#include<sys/msg.h>#inckide<sys/ipc.h>#defineMSGKEY75/*定义关键词MEGKEY*/structmsgform/*消息结构*/{1ongm(ype;charmtext[1030];/*文本长度*/}msg;intmsgqid,i;voidCLIENTO{inti;msgqid=msgget(MSGKEY,0777);for(i=10;i>=1;i-)msg.mtype=i;printf("(c1ient)sent'n");msgsnd(msgqid,&msg,1024,0);/*发送消息msg入msgid消息队列*/)exit(0);)voidSERVER(){msgqid=msgget(MSGKEY,0777|IPC_CREAT);/*由关键字获得消息队列*/do|msgrcv(msgqid,&msg,1030,0,0);/*从msgqid队列接受消息msg*/printf("(server)received\n");}while(msg.mtype1=1);/*消息类型为1时,释放队列*/msgctl(msgqid,IPC_RMID,0);exit(0);)main(){while((i=fork())==-l);if(!i)SERVER();while((i=fork())=-l);if(!i)CLIENT();wait(0);实验结果:FileEditViewTerminalTabsHelpmsgqid.c:32:warning:incompatibleimplicitdeclarationofbuilt-infunction'exptif[root(aiocalhost〜]#./msgqid(client)sent(client)sent(client)sent(client)sent(client)sent(client)sent(cllent)sent(cllent)sent(client)sent(client)sent(server)received(server)received(server)received(server)received(server)received(server)received(server)received(server)received(server)received(server)received[root(aiocalhost-]#口2、选做实验:模拟从c/s通信客户端client功能:1)显示服务功能菜单teryourchoice:Savenoney2.Takemoney2)接受用户键入的功能号进行选择;3)将用户键入的功能号作为一条消息发送到消息队列,然后结束服务端功能:1)从消息队列接受c1ient发送的一条消息;2)根据消息作如下解决:若消息为“1”,创建子进程1,子进程1加载服务模块save,该模块显示以下信息:Yourmoneywassavcd!若消息为“2”,创建子进程2,子进程2加载服务模块take,该模块显示以下信息:P1easetakeyourmoney!3)等待子进程终止后,server消息对列结束。注意:l)save和take要事先编译连接好,放在同一目录下;2)先运营客户端进程,再运营服务端进程。1、client.cinclude<sys/types.h>inelude<sys/msg.h>inc1ude<sys/ipc,h>include<stdio.h>#include<std1ib.h>#defineMSGKEY75structmsgform{longmtype;charmtext[1000];}msg;intmsgqid;voidclient()inti;msgqid=msgget(MSGKEY,0777);/*打开75#消息队列*/for(i=20;i>=l;i-)msg.mtype=i;printf("(client)sent%d\n',,i);sleep(3);msgsnd(msgqid.&msg,1024,0);/*发送消息*/)exit(0);)main()(client();)server.cinclude<sys/types.h>incIude<sys/msg.h>inc1ude<sys/ipc.h>inc1udc<stdio.h>include<std1ib.h>defineMSGKEY75structmsgfbrm{1ongmtype;charmtex([10001;}msg;intmsgqid;voidservcr()msgqid=msgge((MSGKEY,0777|IPC.CREAT);/*创建75#消息队列号msgrcv(msgqid,&msg,1030Q0);/*接受消息*/printf("(server)received%1d\n”,msg.mtype);s1eep(3);}whilc(msg.mtypc!=l);msgctl(msgqidJPC_RMID,0);/火删除消息队列,归还资源*/exit(0);Imain(){server();
实验结果:qroot@localhost:~1FileEditViewTerminalTabsHelp[root@localhostgcc-oclientclient.c[root@local.host〜J#./client(client)sent20(client)sent19(client)sent18(client)sent17(client)sent16(client)sent15(client)sent14(client)sent13(client)sent12(client)sent11(client)sent10(client)sent9(client)sent8(client)sent7(client)sent6(client)sent5(client)sent4(client)sent3(client)sent2(client)sent1[root@localhost〜]#口root@localhost:~FileEditViewTerminalTabsHelp[root(aiocalhostgcc-oserverserver.c[root@localhost-]#./server(server)received20(server)received19(server)received18(server)received17(server)received16(server)received15(server)received14(server)received13(server)received12(server)received11(server)rec
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年二手合法房屋买卖合同(样本)2篇
- 城市更新2024年度砂石料采购及运输合同3篇
- 2024年度广告发布合同的广告内容、发布时间和费用2篇
- 2024年度戊公司为甲公司提供维修服务合同2篇
- 红色金色新中式个人年终总结课件模板
- 2024年度厦门抗浮锚杆工程监理合同
- 2024年度全新食堂场地租赁合同范本示例3篇
- 房产离婚过户及相关法律服务协议(2024版)3篇
- 二零二四年度商务考察与市场调研协议3篇
- 二零二四年度范香与亲戚赵十一之财产赠与合同3篇
- 介绍鲁滨逊课件
- 彩色喷涂产线项目可行性研究报告写作模板-拿地申报
- 2024年保密知识测试题含答案(综合题)
- 2024年园林绿化建设合同
- 2024-2030年中国吸气剂(消气剂)产业前景预测及发展风险分析报告
- 商务部门消防安全培训课件
- 2024-2025学年甘肃省兰州五十八中教育集团高三(上)建标数学试卷(含答案)
- 山东省房屋市政工程安全监督机构人员业务能力考试题库-中(多选题)
- 国企治理实战100问
- 安全评估报告范文(共10篇)
- 四年级数学上册 第6章《除法》单元测评必刷卷(北师大版)
评论
0/150
提交评论