号末3位的消息队列,等待其他进程发来的消息。当遇到类型为1的消息,则作为结束信号,取消该队列,并退出SERVER。SERVER每接收到一个消息后显示一句“(server)received”。③CLIENT端使用key为学号末3位的消息队列,先后发送类型从10到1的消息,然后退出。最后的一个消息,即是SERVER端需要的结束信号。CLIENT每发送一条消息后显示一句“(client)sent”。④父进程在SERVER和CLIENT均退出后结束。实验代码:#include<stdio.h>#include<sys/types.h>#include<sys/msg.h>#include<sys/ipc.h> #defineMSGKEY201structmsgform{ longmtype; charmtext[1030]; }msg; intmsgqid,i;voidCLIENT(){inti; msgqid=msgget(MSGKEY,0777);for(i=10;i>=1;i--){ msg.mtype=i; printf("(client)sent\n"); msgsnd(msgqid,&msg,1024,0);} exit(0);} voidSERVER(){ msgqid=msgget(MSGKEY,0777|IPC_CREAT);do{ msgrcv(msgqid,&msg,1030,0,0);printf("(server)received\n");}while(msg.mtype!=1); msgctl(msgqid,IPC_RMID,0);exit(0);} intmain(){ while((i=fork())==-1);if(!i)SERVER(); while((i=fork())==-1);if(!i)CLIENT();wait(0);wait(0);}