分布式系统实验报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

中南大学分布式系统实验报告目录(我选做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一、实验目的............................................................37二、实验内容和步骤......................................................38三、实验结果............................................................40实验一数据包socket应用一、实验目的1.理解数据包socket的应用2.实现数据包socket通信3.了解Java并行编程的基本方法二、预习与实验要求1.预习实验指导书及教材的有关内容,了解数据包socket的通信原理;2.熟悉一种javaIDE和程序开发过程;3.了解下列JavaAPI:Thread、Runnable;4.尽可能独立思考并完成实验。三、实验环境a)独立计算机或计算机网络;b)Windows操作系统。c)Jdk工具包d)JCreatororothers四、实验原理1.分布式计算的核心是进程通信。操作系统、网卡驱动程序等应用从不同抽象层面提供了对进程通信的支持,例如Winsock、.*。SocketAPI是一种作为IPC提供对系统低层抽象的机制。尽管应用人员很少需要在该层编写代码,但理解socketAPI非常重要,因为:1,高层设施是构建于socketAPI之上的,即他们是利用socketAPI提供的操作来实现;2,对于以响应时间要求较高或运行于有限资源平台上的应用来说,socketAPI可能是最适合的。在Internet网络协议体系结构中,传输层上有UDP和TCP两种主要协议,UDP允许在传送层使用无连接通信传送,被传输报文称为数据包。(是否存在面向连接的数据包socket)因此数据包socket是基于UDP的不可靠IPC。Java为数据包socketAPI提供两个类:(1)针对socket的datagramSocket类(2)针对数据包交换的datagramPacket类希望使用该API发送和接收数据的进程须实例化一个datagramSocket对象,每个socekt被绑定到该进程所在及其的某个UDP端口上。为了向其他进程发送数据包,进程必须创建一个代表数据包本身的对象。该对象通过实例化一个datagramsocket对象创建。在接收者进程中,datagramPacket对象也必须被实例化并绑定到一个本地端口上,该端口必须与发送者数据包的定义一致。接收进程创建一个指向字节数组的DatagramPacket,并调用datagramSocket对象的receive方法,将DatagramPacket对象指针作为参数定义。2.并行编程(以Java为例1)一个线程是比进程更小的执行粒度。Java虚拟机允许应用程序有多个执行线程同时运行。有两种方法来创建一个新线程的执行。一个是声明一个类是一个线程的子类。这个子类应重写Thread类的run方法。一个子类的实例可以被分配和启动。另一种方法创建一个线程,并同时声明一个类实现了Runnable接口(这个类要实现run方法)。一个类的实例可以被分配并作为参数传递给创建的线程,并启动线程。例如:创建一个类是Thread的子类:classSomeThreadextendsThread{SomeThread(){}publicvoidrun(){...}}SomeThreadp=newSomeThread();();创建一个实现Runnable接口的类并传递给线程:classSomeRunimplementsRunnable{SomeRun(){}publicvoidrun(){...}}SomeRunp=newSomeRun(143);newThread(p).start();当一个实现Runnable接口的类被执行时,可以没有子类。实例化一个Thread实例,并通过自身作为目标线程。在大多数情况下,如果你只打算重写的run()方法,并没有其它的线程方法,应使用Runnable接口。因为类不应该被继承,除非程序员有意修改或增强类的基本行为。五、实验内容1.构建客户端程序(1)构建datagramSocket对象实例(2)构建DatagramPacket对象实例,并包含接收者主机地址、接收端口号等信息(3)调用datagramSocket对象实例的send方法,将DatagramPacket对象实例作为参数发送。2.构建服务器端程序(1)构建datagramSocket对象实例,指定接收的端口号。(2)构建DatagramPacket对象实例,用于重组接收到的消息。(3)调用datagramSocket对象实例大家receive方法,进行消息接收,并将DatagramPacket对象实例作为参数。六、实验报告1.客户端和服务器端程序的伪代码;客户端:importclassClient{publicstaticvoidmain(String[]args)throwsIOException{etBytes();如何避免数据包丢失而造成的无限等待问题答:我认为可在发包时设定一个定时器,若发出去的包在一定时间内没有收到答应,则再发一次。为了避免接受者接到重复的包,可以给数据包加个序号,接受者收包时查看序号即可。2.如何实现全双工的数据包通信答:利用端口套接字之间的通信功能。实验二流式socket应用一、实验目的1.理解流式socket的原理2.实现流式socket通信二、预习与实验要求1.预习实验指导书及教材的有关内容,了解流式socket的通信原理;2.熟悉java环境和程序开发过程;3.尽可能独立思考并完成实验。三、实验环境a)独立计算机;b)Windows操作系统;c)Jdk工具包四、实验原理SocketAPI是一种作为IPC提供低层抽象的机制。尽管应用人员很少需要在该层编写代码,但理解socketAPI非常重要,因为:1,高层设施是构建于socketAPI之上的,即他们是利用socketAPI提供的操作来实现;2,对于以响应时间要求较高或运行于有限资源平台上的应用来说,socketAPI可能是最适合的。在Internet网络协议体系结构中,传输层上有UDP和TCP两种主要协议,UDP允许使用无连接通信传送,被传输报文称为数据包。而TCP则允许面向连接的可靠通信,这种IPC称为流式socket。Java为流式socketAPI提供两类socket(1)式用于连接的连接socket(2)式用于数据交换的数据socket。五、实验内容1.构建客户端程序和服务器端程序都需要的MystreamSocket类,定义继承自javaSocket的sendMessage和receiveMessage方法2.构建客户端程序(1)创建一个MyStreamsocket的实例对象,并将其指定接收服务器和端口号(2)调用该socket的receiveMessage方法读取从服务器端获得的消息3.构建服务器端程序(1)构建连接socket实例,并与指定的端口号绑定,该连接socket随时侦听客户端的连接请求(2)创建一个MyStreamsocket的实例对象(3)调用MyStreamsocket的实例对象的sendMessage方法,进行消息反馈。六、实验报告1.应用程序的结构图,说明程序之间的关系;2.程序的伪代码。公用服务功能:import.*;import.*;publicclassMystreamSocketextendsSocket{privateSocketsocket;privateBufferedReaderinput;privatePrintWriteroutput;ava:importclassClient{publicstaticvoidmain(Stringargs[]){try{InetAddresshostname=(localhost);MystreamSocketmss=newMystreamSocket(hostname,

1 / 40
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功