• 大小: 1KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-06-15
  • 语言: 其他
  • 标签: linux  

资源简介

实验目的:了解和熟悉linux支持的消息通信机制。 任务:使用linux系统提供的系统调用msgget(),msgrev(),msgctl()编制一个长度为1K的消息发送和接受的程序。 实验要求: (1)用一个程序作为“引子”,先后fork()两个进程,SERVER和CLIENT,进行通信。 (2)SERVER端建立一个Key为75的消息队列,等待其他进程发来的消息。当遇到类型为1的消息,则作为结束信号,取消该队列,并退出SERVER。SERVER每接受到一个消息后显示一句“(Server)received”。 (3)CLIENT端使用key为75的消息队列,先后发送类型从10到1的消息,然后退出。最后一个消息,即是SERVER端需要的结束信号。CLIENT每发送一条消息后显示一句“(Client)sent”。 (4)父进程在SERVER和CLIENT都退出后结束。

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 
#define SHMKEY 75         /*定义共享区关键词*/

int msgidp1p2;

struct msgform
{
long mtype;
char mtext[1030];
}msgp;
 r: stray ‘\357’ in program

void CLIENT()
{
int i;
msgid=msgget(SHMKEY0777);//创建消息队列

for(i=10;i>=1;i--)
{
msgp.mtype=i;
printf(“(client)sent\n“);          
/*打印(client)sent*/
msgsnd(msgid &msgp 10240);
//发送消息
}
exit(0);
}

void SERVER()
{
msgid=msgget(SHMKEY077

评论

共有 条评论