新建
上传
首页
助手
最?/div>
资料?/div>
工具

?/p>

?/p>

?/p>

 

?/p>

?/p>

?/p>

?/p>

?/p>

 

班级?/p>

   xxx   

学号?/p>

  xxx   

姓名?/p>

   xxx    

分数?/p>

          

1

、实验目的:

 

Linux

系统的进程通信机构

?/p>

IPC

?/p>

允许在任意进程间大批量的交换数据?/p>

本实验的?/p>

的是了解和熟?/p>

Linux

支持的通信机制、共享存储区机制及信号量机制?/p>

 

2

?/p>

 

实验预备内容?/p>

 

阅读

Linux

系统?/p>

 

 

等源码文件,熟悉

Linux

的三种通信机制?/p>

 

3

?/p>

实验内容?/p>

 

?/p>

1

?/p>

 

消息的创建,发送和接收

 

?/p>

2

?/p>

 

使用系统调用

msgget()

?/p>

msgsnd()

?/p>

 

msgrev()

?/p>

msgctl()

编制一长度?/p>

1k

的消

息发送和接收程序?/p>

 

<

程序设计

> 

?/p>

1

?/p>

 

为了便于操作和观察结果,用一个程序作为“引子”,先后

fork

()两个子进

程,

SERVER

?/p>

CLIENT

,进行通信?/p>

 

?/p>

2

?/p>

 

SERVER

端建立一?/p>

Key

?/p>

75

的消息队列,等待其他进程发来的消息。当?

到类型为

1

的消息,

则作为结束信号,

取消该队列,

并退?/p>

SERVER

?/p>

SERVER

每接收到一个消息后显示一句“(

server

?/p>

received

”?/p>

 

?/p>

3

?/p>

 

CLIENT

端使?/p>

Key

?/p>

75

的消息队列,先后发送类型从

10

?/p>

1

的消息,然后

退出?/p>

最后一个消息,

即是

SERVER

端需要的结束信号?/p>

CLIENT

每发送一?/p>

信息后显示一句“(

client

?/p>

sent

”?/p>

 

?/p>

4

?/p>

 

父进程在

SERVER

?/p>

CLIENT

均退出后结束?/p>

 

4

、源代码及运行截图:

 

#include <> 

#include <sys/> 

#include <sys/> 

#include <sys/> 

#define MSGKEY 75 

 

struct msgform 

{ 

 

 

 

long mtype; 

 

 

 

 

char mtext[1030]; 

}msg; 

int msgqid,i; 

void CLIENT() 

{ 

 

int i; 

 

 

 

msgqid=msgget(MSGKEY,0777); 

 

 

 

for (i=10;i>=1;i--) 

 

 

 

{ 

 

 

 

 

 

 

 

 

 

 

=i; 

Ͼλ
新建
上传
首页
助手
最?/div>
资料?/div>
工具

?/p>

?/p>

?/p>

 

?/p>

?/p>

?/p>

?/p>

?/p>

 

班级?/p>

   xxx   

学号?/p>

  xxx   

姓名?/p>

   xxx    

分数?/p>

          

1

、实验目的:

 

Linux

系统的进程通信机构

?/p>

IPC

?/p>

允许在任意进程间大批量的交换数据?/p>

本实验的?/p>

的是了解和熟?/p>

Linux

支持的通信机制、共享存储区机制及信号量机制?/p>

 

2

?/p>

 

实验预备内容?/p>

 

阅读

Linux

系统?/p>

 

 

等源码文件,熟悉

Linux

的三种通信机制?/p>

 

3

?/p>

实验内容?/p>

 

?/p>

1

?/p>

 

消息的创建,发送和接收

 

?/p>

2

?/p>

 

使用系统调用

msgget()

?/p>

msgsnd()

?/p>

 

msgrev()

?/p>

msgctl()

编制一长度?/p>

1k

的消

息发送和接收程序?/p>

 

<

程序设计

> 

?/p>

1

?/p>

 

为了便于操作和观察结果,用一个程序作为“引子”,先后

fork

()两个子进

程,

SERVER

?/p>

CLIENT

,进行通信?/p>

 

?/p>

2

?/p>

 

SERVER

端建立一?/p>

Key

?/p>

75

的消息队列,等待其他进程发来的消息。当?

到类型为

1

的消息,

则作为结束信号,

取消该队列,

并退?/p>

SERVER

?/p>

SERVER

每接收到一个消息后显示一句“(

server

?/p>

received

”?/p>

 

?/p>

3

?/p>

 

CLIENT

端使?/p>

Key

?/p>

75

的消息队列,先后发送类型从

10

?/p>

1

的消息,然后

退出?/p>

最后一个消息,

即是

SERVER

端需要的结束信号?/p>

CLIENT

每发送一?/p>

信息后显示一句“(

client

?/p>

sent

”?/p>

 

?/p>

4

?/p>

 

父进程在

SERVER

?/p>

CLIENT

均退出后结束?/p>

 

4

、源代码及运行截图:

 

#include <> 

#include <sys/> 

#include <sys/> 

#include <sys/> 

#define MSGKEY 75 

 

struct msgform 

{ 

 

 

 

long mtype; 

 

 

 

 

char mtext[1030]; 

}msg; 

int msgqid,i; 

void CLIENT() 

{ 

 

int i; 

 

 

 

msgqid=msgget(MSGKEY,0777); 

 

 

 

for (i=10;i>=1;i--) 

 

 

 

{ 

 

 

 

 

 

 

 

 

 

 

=i; 

">
新建
上传
首页
助手
最?/div>
资料?/div>
工具

?/p>

?/p>

?/p>

 

?/p>

?/p>

?/p>

?/p>

?/p>

 

班级?/p>

   xxx   

学号?/p>

  xxx   

姓名?/p>

   xxx    

分数?/p>

          

1

、实验目的:

 

Linux

系统的进程通信机构

?/p>

IPC

?/p>

允许在任意进程间大批量的交换数据?/p>

本实验的?/p>

的是了解和熟?/p>

Linux

支持的通信机制、共享存储区机制及信号量机制?/p>

 

2

?/p>

 

实验预备内容?/p>

 

阅读

Linux

系统?/p>

 

 

等源码文件,熟悉

Linux

的三种通信机制?/p>

 

3

?/p>

实验内容?/p>

 

?/p>

1

?/p>

 

消息的创建,发送和接收

 

?/p>

2

?/p>

 

使用系统调用

msgget()

?/p>

msgsnd()

?/p>

 

msgrev()

?/p>

msgctl()

编制一长度?/p>

1k

的消

息发送和接收程序?/p>

 

<

程序设计

> 

?/p>

1

?/p>

 

为了便于操作和观察结果,用一个程序作为“引子”,先后

fork

()两个子进

程,

SERVER

?/p>

CLIENT

,进行通信?/p>

 

?/p>

2

?/p>

 

SERVER

端建立一?/p>

Key

?/p>

75

的消息队列,等待其他进程发来的消息。当?

到类型为

1

的消息,

则作为结束信号,

取消该队列,

并退?/p>

SERVER

?/p>

SERVER

每接收到一个消息后显示一句“(

server

?/p>

received

”?/p>

 

?/p>

3

?/p>

 

CLIENT

端使?/p>

Key

?/p>

75

的消息队列,先后发送类型从

10

?/p>

1

的消息,然后

退出?/p>

最后一个消息,

即是

SERVER

端需要的结束信号?/p>

CLIENT

每发送一?/p>

信息后显示一句“(

client

?/p>

sent

”?/p>

 

?/p>

4

?/p>

 

父进程在

SERVER

?/p>

CLIENT

均退出后结束?/p>

 

4

、源代码及运行截图:

 

#include <> 

#include <sys/> 

#include <sys/> 

#include <sys/> 

#define MSGKEY 75 

 

struct msgform 

{ 

 

 

 

long mtype; 

 

 

 

 

char mtext[1030]; 

}msg; 

int msgqid,i; 

void CLIENT() 

{ 

 

int i; 

 

 

 

msgqid=msgget(MSGKEY,0777); 

 

 

 

for (i=10;i>=1;i--) 

 

 

 

{ 

 

 

 

 

 

 

 

 

 

 

=i; 

Ͼλ">
Ͼλ
Ŀ

实验三进程间通信 - 百度文库
新建
上传
首页
助手
最?/div>
资料?/div>
工具

?/p>

?/p>

?/p>

 

?/p>

?/p>

?/p>

?/p>

?/p>

 

班级?/p>

   xxx   

学号?/p>

  xxx   

姓名?/p>

   xxx    

分数?/p>

          

1

、实验目的:

 

Linux

系统的进程通信机构

?/p>

IPC

?/p>

允许在任意进程间大批量的交换数据?/p>

本实验的?/p>

的是了解和熟?/p>

Linux

支持的通信机制、共享存储区机制及信号量机制?/p>

 

2

?/p>

 

实验预备内容?/p>

 

阅读

Linux

系统?/p>

 

 

等源码文件,熟悉

Linux

的三种通信机制?/p>

 

3

?/p>

实验内容?/p>

 

?/p>

1

?/p>

 

消息的创建,发送和接收

 

?/p>

2

?/p>

 

使用系统调用

msgget()

?/p>

msgsnd()

?/p>

 

msgrev()

?/p>

msgctl()

编制一长度?/p>

1k

的消

息发送和接收程序?/p>

 

<

程序设计

> 

?/p>

1

?/p>

 

为了便于操作和观察结果,用一个程序作为“引子”,先后

fork

()两个子进

程,

SERVER

?/p>

CLIENT

,进行通信?/p>

 

?/p>

2

?/p>

 

SERVER

端建立一?/p>

Key

?/p>

75

的消息队列,等待其他进程发来的消息。当?

到类型为

1

的消息,

则作为结束信号,

取消该队列,

并退?/p>

SERVER

?/p>

SERVER

每接收到一个消息后显示一句“(

server

?/p>

received

”?/p>

 

?/p>

3

?/p>

 

CLIENT

端使?/p>

Key

?/p>

75

的消息队列,先后发送类型从

10

?/p>

1

的消息,然后

退出?/p>

最后一个消息,

即是

SERVER

端需要的结束信号?/p>

CLIENT

每发送一?/p>

信息后显示一句“(

client

?/p>

sent

”?/p>

 

?/p>

4

?/p>

 

父进程在

SERVER

?/p>

CLIENT

均退出后结束?/p>

 

4

、源代码及运行截图:

 

#include <> 

#include <sys/> 

#include <sys/> 

#include <sys/> 

#define MSGKEY 75 

 

struct msgform 

{ 

 

 

 

long mtype; 

 

 

 

 

char mtext[1030]; 

}msg; 

int msgqid,i; 

void CLIENT() 

{ 

 

int i; 

 

 

 

msgqid=msgget(MSGKEY,0777); 

 

 

 

for (i=10;i>=1;i--) 

 

 

 

{ 

 

 

 

 

 

 

 

 

 

 

=i; 



ļ׺.doc޸Ϊ.docĶ

  • 2015-2020йȻҵгͶǰ - ͼ
  • ѧ˽A2ѧ4.2.3ֱߺԲķ̵Ӧ(ѧ)
  • 2019Ʋ鷨׼.doc
  • ׼ũҵ̬Ƽʾ԰Ŀо
  • ũ彨鱨淶
  • (ı)
  • ʡ˾ũѹͨƼչ淶(2014.1.17)
  • ʵϰ
  • ͨſκϰ
  • ϿƼѧȹ⸴ϰ

վ

԰ Ͼλ
ϵͷ779662525#qq.com(#滻Ϊ@)