分布式系统实验报告

上传人:鲁** 文档编号:506261877 上传时间:2023-09-20 格式:DOCX 页数:44 大小:347.62KB
返回 下载 相关 举报
分布式系统实验报告_第1页
第1页 / 共44页
分布式系统实验报告_第2页
第2页 / 共44页
分布式系统实验报告_第3页
第3页 / 共44页
分布式系统实验报告_第4页
第4页 / 共44页
分布式系统实验报告_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《分布式系统实验报告》由会员分享,可在线阅读,更多相关《分布式系统实验报告(44页珍藏版)》请在金锄头文库上搜索。

1、中南大学分布式系统实验报告目录(我选做4题,按住Ctrl点击目录条可直达,wps下有效)实验一数据包 socket 应用 4一、实验目的 4二、预习与实验要求 4三、实验环境 4四、实验原理 4五、实验内容 6六、实验报告 7七、思考题 7实验二流式 soCket 应用 8一、实验目的 8二、预习与实验要求 8三、实验环境 8四、实验原理 8五、实验内容 9六、实验报告 9七、思考题 11实验三客户/服务器应用开发 11一、实验目的 11二、预习与实验要求 11三、实验环境 11四、实验原理 12五、实验内容 12六、实验报告 13实验九 虚拟机的使用与 Linux 系统的安装 37一、实验目

2、的 37二、实验内容和步骤 38三、实验结果 40实验一数据包 socket应用一、实验目的1理解数据包socket的应用2. 实现数据包socket通信3. 了解Java并行编程的基本方法二、预习与实验要求1. 预习实验指导书及教材的有关内容,了解数据包socket的通信原理;2. 熟悉一种java IDE和程序开发过程;3. 了解下列 Java API:Thread、Runnable;4. 尽可能独立思考并完成实验。三、实验环境a) 独立计算机或计算机网络;b) Windows操作系统。c) Jdk工具包d) JCreator or others实验原理1. 分布式计算的核心是进程通信。

3、操作系统、网卡驱动程序等应用从不同抽象层面提供了对进程通信的支持,例如Winsock、.*。Socke t API是一种作为IPC提供对系统低层抽象的机制。尽管应用人 员很少需要在该层编写代码,但理解socket API非常重要,因为:1,高层设施是构建于 socketAPI之上的,即他们是利用socket API提供的操作来实现;2,对于以响应时间要求较高 或运行于有限资源平台上的应用来说,socket API可能是最适合的。在Internet网络协议体系结构中,传输层上有UDP和TCP两种主要协议,UDP允许在 传送层使用无连接通信传送,被传输报文称为数据包。(是否存在面向连接的数据包 s

4、ocket)因此数据包socket是基于UDP的不可靠IPC。Java为数据包socketAPI提供 两个类:(1)针对 socket 的 datagramSocket 类(2)针对数据包交换的datagramPacket类希望使用该API发送和接收数据的进程须实例化一个datagramSocket对象,每个socekt 被绑定到该进程所在及其的某个UDP端口上。为了向其他进程发送数据包,进程必须创建 个代表数据包本身的对象。该对象通过实例化一个datagram socket对象创建。在接收者进程中,datagramPacket对象也必须被实例化并绑定到一个本地端口上,该端 口必须与发送者数据

5、包的定义一致。接收进程创建一个指向字节数组的Da tagramPacke t, 并调用datagramSocket对象的receive方法,将DatagramPacket对象指针作为参数定义。2. 并行编程(以Java为例1 )一个线程是比进程更小的执行粒度。Java虚拟机允许应用程序有多个执行线程同时运 行。有两种方法来创建一个新线程的执行。一个是声明一个类是一个线程的子类。这个子类 应重写Thread类的run方法。一个子类的实例可以被分配和启动。另一种方法创建一个 线程,并同时声明一个类实现了 Runnable接口(这个类要实现run方法)。一个类的实例可 以被分配并作为参数传递给创建的

6、线程,并启动线程。例如:创建一个类是Thread的子类:class SomeThread extends Thread SomeThread() public void run() SomeThread p 二 new SomeThread();();创建一个实现Runnable接口的类并传递给线程:class SomeRun implements Runnable SomeRun() public void run() SomeRun p 二 new SomeRun(143);new Thread(p).s tart();当一个实现Runnable接口的类被执行时,可以没有子类。实例化一个T

7、hread实例,并 通过自身作为目标线程。在大多数情况下,如果你只打算重写的run ()方法,并没有其它 的线程方法,应使用Runnable接口。因为类不应该被继承,除非程序员有意修改或增强类 的基本行为。五、实验内容1. 构建客户端程序(1) 构建datagramSocket对象实例(2) 构建DatagramPacket对象实例,并包含接收者主机地址接收端口号等信息(3)调用datagramSocket对象实例的send方法,将DatagramPacket对象实例作为参 数发送。2. 构建服务器端程序(1)构建datagramSocket对象实例,指定接收的端口号。(2)构建Datagra

8、mPacket对象实例,用于重组接收到的消息。(3)调用datagramSocket对象实例大家receive方法,进行消息接收,并将DatagramPacket对象实例作为参数。六、实验报告1. 客户端和服务器端程序的伪代码; 客户端:importclass Client public static void main(String args) throws IOExceptionetBytes();注躺Si翼筑I血丽兔毎护|冲OfC”!Java电弔程匡I CProgriam百|0门山必俐上1.鱼血_101舛叫的阿孕(丰目li日上牛创hellonihaokaiwanxiao8SSI .F 肺

9、 2 Q 畏-口 : 口 n口心阳曲蛊用程序J C:Pro9ram白亡叫3科日4也心曲禹叫时上爼(2Crl74.F=ll 3上午细狛|hallonihaoieragq 古同卸 CiPragram FiTWdkKgOlAbirwaw.eM! i: 20174113 上午 11卜:;!口删m - is | A S31 -* s - rt * - cClrtnt 卩! 包召胆手CAProgrjm FlaQara园口.0 10!旧叫f 30口日冃口日上#i3*0C kaianxiao如何避免数据包丢失而造成的无限等待问题答:我认为可在发包时设定一个定时器,若发出去的包在一定时间内没有收到答应,则再发一

10、次。为了避免接受者接到重复的包,可以给数据包加个序号,接受者收包时查看序号即可。2. 如何实现全双工的数据包通信答:利用端口套接字之间的通信功能。实验二流式 socket 应用一、实验目的1. 理解流式socket的原理2. 实现流式socket通信二、预习与实验要求1. 预习实验指导书及教材的有关内容,了解流式socket的通信原理;2. 熟悉java环境和程序开发过程;3. 尽可能独立思考并完成实验。三、实验环境a) 独立计算机;b) Windows操作系统;c) Jdk工具包实验原理Socket API是一种作为IPC提供低层抽象的机制。尽管应用人员很少需要在该层编写代 码,但理解soc

11、ket API非常重要,因为:1,高层设施是构建于socket API之上的,即 他们是利用socket API提供的操作来实现;2,对于以响应时间要求较高或运行于有限资源平 上的应用来说,socket API可能是最适合的。在Internet网络协议体系结构中,传输层上有UDP和TCP两种主要协议,UDP允许使 用无连接通信传送,被传输报文称为数据包。而TCP则允许面向连接的可靠通信,这种IPC 称为流式socket。Java为流式socket API提供两类socket (1)式用于连接的连接 socket(2)式用于数据交换的数据socket。五、实验内容1. 构建客户端程序和服务器端程

12、序都需要的 MystreamSocket 类,定义继承自 javaSocket的 sendMessage 和 receiveMessage 方法2. 构建客户端程序(1)创建一个MyStreamsocket的实例对象,并将其指定接收服务器和端口号(2)调用该socket的receiveMessage方法读取从服务器端获得的消息3. 构建服务器端程序(1)构建连接socket实例,并与指定的端口号绑定,该连接socket随时侦听客户 端的连接请求(2)创建个 MyStreamsocket的实例对象(3)调用MyStreamsocket的实例对象的sendMessage方法,进行消息反馈。六、实验

13、报告1. 应用程序的结构图,说明程序之间的关系;2. 程序的伪代码。公用服务功能: import .*;import .*;public class MystreamSocket extends Socket private Socket socket;private BufferedReader input;private PrintWriter output;ava:import class Client public static void main(String args)try InetAddress hostname=(localhost);MystreamSocket mss=n

14、ew MystreamSocket(hostname,12345);(我是客户端,我请求连接!);(); catch (IOException e) tart(); catch (IOException e) 如何实现全双工的流式socket通信答:服务端监听端口,每当有一个连接请求发来时,就与其建立新的连接,然后利用其提供 的功能进行通信。2. 如何实现安全 socket API答:注意在通信过程中的各种异常情况的捕获与处理。3. 如何实现 1对多的并发答:在服务端使用多线程。实验三客户/服务器应用开发一、实验目的1. 验证day time和echo程序,2. 实现包socket支撑的C/S模式IPC机制3. 实现流式socket支撑的C/S模式IPC机制二、预习与实验要求1. 预习实验指导书及教材的有关内容,了解day time和echo要提供的具体服务内容;2. 复习包socket和流式socket的实现原理;3. 实验前认真听讲,服从安排。尽可能独立思考并完成实验。三、实验环境a) 独立计算机;b) Windows操作系统。c) Jdk工具包、实验原理C/S 模式是主要的分布式应用范型,其设计的目的是提供网络服务。网络服务指如day time、t elne t、ftp和WWW之类的允许网络用户共享资源的服务。要构建C/S范型的应用就必须解决以下一些

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号