下载此文档

消息队列通信实验报告.doc


文档分类:通信/电子 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/6 下载此文档
文档列表 文档介绍
实验6消息队列通信实验目的1、了解什么是消息、消息队列2、掌握消息传送的机理实验内容消息的创立、发送和接收。使用系统调用msgget(),msgsnd(),msgrev(),及msgctl()编制一长度为1k的消息发送和接收的程序。#include<>#include<sys/>#include<sys/>#include<sys/>#defineMSGKEY75/*定义关键词MEGKEY*/structmsgform/*消息结构*/{longmtype;charmtext[1030];/*文本长度*/}msg;intmsgqid,i;voidCLIENT(){inti;msgqid=msgget(MSGKEY,0777);for(i=10;i>=1;i--){=i;printf("(client)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(!=1);/*消息类型为1时,释放队列*/msgctl(msgqid,IPC_RMID,0);exit(0);}main(){while((i=fork())==-1);if(!i)SERVER();while((i=fork())==-1);if(!i)CLIENT();wait(0);wait(0);}实验结果:2、选做实验:模拟从c/s通信客户端client功能:1)显示服务功能菜单Enteryourchoice:SavenoneyTakemoney2)接收用户键入的功能号进行选择;3)将用户键入的功能号作为一条消息发送到消息队列,然后结束服务端功能:从消息队列接收client发送的一条消息;根据消息作如下处理:若消息为“1”,创立子进程1,子进程1加载服务模块save,该模块显示以下信息:Yourmoneywassaved!若消息为“2”,创立子进程2,子进程2加载服务模块take,该模块显示以下信息:Pleasetakeyourmoney!3)等待子进程终止后,server消息对列结束。注意:1)save和take要事先编译连接好,放在同一目录下;2)先运行客户端进程,再运行服务端进程。1、#include<sys/>#include<sys/>#include<sys/>#include<>#include<>#defineMSGKEY75structmsgform{longmtype;charmtext[1000];}msg;intmsgqid;voidclient(){inti;msgqid=msgget(MSG

消息队列通信实验报告 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人书犹药也
  • 文件大小103 KB
  • 时间2020-03-16