分布计算实验2.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
分布计算实验2

福州大学数学与计算机科学学院 上机实验报告 专业和班级 信息数学02班 姓名 詹小青 成绩 课程名称 分布计算 实验名称 利用组通信函数,实现组通信 实 验 目 的 和 要 求 1.实验目的 (1)学习类与对象的定义。 (2)掌握类与对象的使用方法。 (3)学习数据成员与成员函数的访问方式。 2.实验要求 (1)可以定义出一个类 (2)创建该类的对象 (3)对象的访问 实 验 内 容 和 步 骤 1.实验内容: 编写自己的组播应用。编写一个应用使多个进程使用组通信完成选举。有两个候选人:John和Smith。每个进程通过一个标明自身身份及选票的消息组播自己的选票。每个进程跟踪每个候选人的得票数,也包括自己的得票情况。选举结束时(例如,John 10,Smith 5)。提交你的应用程序清单并回答下列问题: (1)你的设计是如何允许参与者加入组播组的? (2)你的设计是如何同步选举开始的,使得每个进程都准备就绪,等待接收组成员发出的任何选票? 2.实验基本步骤: (1)程序: import java.io.*; import java.net.*; public class send { public static void main(String[] args) throws Exception { InetAddress group = InetAddress.getByName(239.1.2.3); int port = 8888; MulticastSocket socket = null; InputStreamReader is = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(is); String character = br.readLine(); byte[] data = null; data = character.getBytes(); DatagramPacket packet = new DatagramPacket(data, data.length, group,port); Thread theThread = new Thread(new ReadThread(group, port)); theThread.start(); System.out.println(Hit return when ready to send); br.readLine(); socket = new MulticastSocket(port); socket.send(packet); socket.close(); } } class ReadThread implements Runnable { static final int MAX_LEN=30; private InetAddress group; private int port; int John=0; int Smith=0; public ReadThread(InetAddress group,int port) { this.group=group; this.port=port; } public void run() { try{ MulticastSocket socket=new MulticastSocket(port); socket.joinGroup(group); while(true){ byte[] data=new byte[MAX_LEN]; DatagramPacket packet=new DatagramPacket(data,data.length,group,port); socket.receive(packet); String s=new String(packet.getData()); s=s.substring(0, 4); if(s.equals(John)) System.out.println(John: + ++this.John+\nSmith + this.Smith); else System.out.println(John: + this.John+\nSmith + ++this.Smith); } }catch(Exception e) { e.printSt

文档评论(0)

peain + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档