实验3 进程通信.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《实验3 进程通信.ppt》由会员分享,可在线阅读,更多相关《实验3 进程通信.ppt(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验3 进程通信v实验内容实验内容1 管道通信管道通信v实验内容实验内容12 Socket通信通信v 实实 验验 目目 的的v 实实 验验 内内 容容v 准准 备备 知知 识识v 实实 验验 原原 理理v 实实 验验 指指 导导管道通信管道通信实验目的v 了解管道的基本概念;了解管道的基本概念;v 掌握掌握Linux支持的管道通信方式。支持的管道通信方式。实验内容v本实验利用管道通信机制,实现输入字符串的自动分流操本实验利用管道通信机制,实现输入字符串的自动分流操作。一共涉及作。一共涉及3个管道,个管道,4个进程:个进程:(1)P1:从键盘接收输入字符串,写入管道:从键盘接收输入字符串,写入管
2、道Pipe1;(2)P2:从:从Pipe1接收字符串,若字符串的长度为偶数,接收字符串,若字符串的长度为偶数,则将其写入管道则将其写入管道Pipe2,否则将其写入管道,否则将其写入管道Pipe3;(3)P3:从:从Pipe2读出字符串,并显示读出字符串,并显示“Pipe2:Even length string:偶长度字符串偶长度字符串”;(4)P4:从:从Pipe3读出字符串,并显示读出字符串,并显示“Pipe3:Odd length string:奇长度字符串奇长度字符串”;(5)输入输入exit 程序退出。程序退出。准备知识v 查阅相关资料理解管道的基本概念和相关知识;查阅相关资料理解管道
3、的基本概念和相关知识;v 了解了解LinuxLinux支持的管道通信方式。支持的管道通信方式。实验原理v 管道的概念及特点管道的概念及特点 管道是管道是Linux进程通信的手段之一。两个进程:一个进程从管道的进程通信的手段之一。两个进程:一个进程从管道的一端把数据输入进去,另一个进程可从管道的另一端读取这些数据。一端把数据输入进去,另一个进程可从管道的另一端读取这些数据。管道具有以下特点管道具有以下特点:(1)管道是半双工的,同一时间,数据只能单向流动;若两进程管道是半双工的,同一时间,数据只能单向流动;若两进程之间需要相互通信,则需需要建立两个管道;之间需要相互通信,则需需要建立两个管道;(
4、2)Linux系统中把管道看作是一种特殊文件,采用文件管理的方系统中把管道看作是一种特殊文件,采用文件管理的方法对管道进行管理,且只存在于内存中;法对管道进行管理,且只存在于内存中;(3)数据的读出和写入都是单向的,不能从管道写端读取数据,数据的读出和写入都是单向的,不能从管道写端读取数据,也不能向管道读端写入数据。也不能向管道读端写入数据。v 管道的创建管道的创建 在程序设计中管道的创建是由系统调用在程序设计中管道的创建是由系统调用pipe()函数实现的,其原函数实现的,其原型定义如下:型定义如下:#include int pipe(int fds2);v 管道的读写管道的读写 pipe()
5、函数有一个参数函数有一个参数fds2,是用于管道两端的描述字。管道一端,是用于管道两端的描述字。管道一端只能用于读,由描述字只能用于读,由描述字fds0表示,即管道读端;另一端则只能用于写,表示,即管道读端;另一端则只能用于写,由描述字由描述字fds1表示,即管道写端。可在对管道进行读写等操作时,调用表示,即管道写端。可在对管道进行读写等操作时,调用close、read、write等等I/O函数函数实验指导v假定进程假定进程P0在执行上述在执行上述pipe命令建立管道后用命令建立管道后用fork命令创命令创建了两个子进程建了两个子进程P1和和P2,P1和和P2继承继承P0的文件获得管道的文件获
6、得管道fds使用权,因而可以相互通信使用权,因而可以相互通信v实验的流程图如下图所示实验的流程图如下图所示Socket通信v 实实 验验 目目 的的v 实实 验验 内内 容容v 准准 备备 知知 识识v 实实 验验 原原 理理v 实实 验验 指指 导导实验目的v理解理解Socket通信的基本概念和工作原理;通信的基本概念和工作原理;v掌握掌握Socket的建立、监听、连接、发送和接收数据的方法;的建立、监听、连接、发送和接收数据的方法;v在在Linux下使用下使用C语言设计和实现基于语言设计和实现基于Socket通信的程序。通信的程序。实验内容v在同一台机器上建立一个服务器端在同一台机器上建立
7、一个服务器端Server,一个客户端,一个客户端Client;v建立建立Server 与与 Client的连接;的连接;vServer提供一个计算功能,即进行四则运算(除号用提供一个计算功能,即进行四则运算(除号用/代替)代替);vClient从键盘接收运算格式串,串的格式为:从键盘接收运算格式串,串的格式为:v操作符(操作符(*)之一,操作数)之一,操作数1,操作数,操作数2v例如发送字符串:例如发送字符串:*,3,5 表示要表示要Sever计算计算 3*5;vServer接收命令串,解析并计算之,结果以字符串形式返接收命令串,解析并计算之,结果以字符串形式返回给回给Client;vClie
8、nt 显示结果;显示结果;v输入输入q结束结束Client,Client结束前断开与结束前断开与Server的连接。的连接。准备知识v掌握掌握Socket通信的基本概念和工作原理;通信的基本概念和工作原理;v掌握必要的网络知识,如掌握必要的网络知识,如TCP协议。协议。实验原理vSocketvSocket接口是接口是TCP/IP网络的网络的API,Socket接口定义了许多函数或例程,接口定义了许多函数或例程,可以用来进行网络方面的程序设计与开发。可以用来进行网络方面的程序设计与开发。Socket(套接字)是通过(套接字)是通过标准的标准的Unix文件描述符和其它程序通信的一个方法。文件描述符
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验3 进程通信 实验 进程 通信
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内