文档详情

操作系统消息接受与发送实验报告.doc

发布:2017-08-25约字共6页下载文档
文本预览下载声明
嘉应学院计算机科学与技术系 试 验 报 告 课程名称 操作系统 实验名称 消息接收与发送 实验地点 指导老师 实验时间 提交时间 班 级 姓 名 座 号 一、实验目的和要求 1、了解什么是消息 2、熟悉消息传送的机理 二、实验环境、内容和方法 实验内容和要求: 消息的创建、发送和接收。使用系统调用msgget( ),msgsnd( ),msgrev( ),及msgctl( )编制一长度为1k的消息发送和接收的程序。 实验方法:通过上机操作完成各内容。 实验环境: 实验用PC机一台,Intel Pentium Ⅲ 处理器,1.00GHz,256MB内存,使用操作系统为Windows XP Professional,安装OFFICE 2003。 三、实验过程描述 参考程序:编制二个程序client.c和server.c,分别用于消息的发送与接收 1.client.c #include stdio.h #include stdlib.h #include sys/types.h #include sys/msg.h #include sys/ipc.h #define MSGKEY 75 struct msgform { long mtype; char mtext[1000]; }msg; int msgqid; void client() { int i; msgqid=msgget(MSGKEY,0777); /*打开75#消息队列*/ for(i=10;i=1;i--) { msg.mtype=i; printf(“(client)sent\n”); msgsnd(msgqid,msg,1024,0); /*发送消息*/ } exit(0); } main( ) { client( ); } 2、server.c #include stdio.h #include stdlib.h #include sys/types.h #include sys/msg.h #include sys/ipc.h #define MSGKEY 75 struct msgform { long mtype; char mtext[1000]; }msg; int msgqid; void server( ) { msgqid=msgget(MSGKEY,0777|IPC_CREAT); /*创建75#消息队列*/ do { msgrcv(msgqid,msg,1030,0,0); /*接收消息*/ printf(“(server)received\n”); }while(msg.mtype!=1); msgctl(msgqid,IPC_RMID,0); /*删除消息队列,归还资源*/ exit(0); } main( ) { server( ); } 四、结果分析
显示全部
相似文档