- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
如何使用JXT技术建立P2P网络
?如何使用JXTA技术建立P2P网络
通过之前将近一个月对于JXTA技术的研究,终于大致了解了P2P网络JXTA技术的JAVA语言实现过程,特整理出来,以供大家交流讨论。其实,关于概念和该技术的介绍,也可以找到一些资料,在此我就不再介绍,我直接通过代码来描述一个P2P网络在JXTA技术下用JAVA语言实现的过程。 第一步,大家需要下载JXTA的类库,在上可以下载到最新版本。我这里提供JXTA2.4.1的版本(很抱歉,超过限制上传不了!我会在论坛上另外上传,包括CHM格式的技术手册)。 第二步,新建一个JAVA工程,将这些JAR包添加至构建路径(此处是采用Eclipse,用其他IDE,或是直接将这些JAR包添加到CLASSPATH也行)。 第三步,我们将开始代码编写了。新建一个类。其main方法及其调用方法代码如下:
?public static void main(String[] args) {?RestoPeer myapp = new RestoPeer();?? //此处实例化一个对等体对象。?myapp.startJxta();??????????????????????????????????//此处启动JXTA方法,用来加入组,获得服务等等。?System.exit(0);??????????????????????????????????????//功能至完成,退出系统。?}public void startJxta() {?try {?????????加入默认对等组NetPeerGroup?netpg = new NetPeerGroupFactory().getInterface();?} catch (PeerGroupException e) {????// TODO Auto-generated catch block????e.printStackTrace();}??......?} 此处需要注意的是,由于JXTA技术的不断更新,其类库结构和实现已发生很大变化,此处加入默认对等组是2.4.1版本中的新方法。JXTA技术手册上的方法已过时。 第四步,我们需要获得默认对等组为我们提供的发现服务:
?DiscoveryService disco = netpggetDiscoveryService(); 此时,我们便可以利用disco服务来查找我们所需的广告了。 第五步,我们需要查找一个属于我们自己的对等组,如果找不到,我们则创建一个这样的对等组。此时只是为了得到我们所需要的服务。因为每个对等组里所提供的服务并不全部相同。我们通常会把相同的目的的对等体通过一个对等组来组织起来。一个加入对等组的代码如下:(此例采用JXTA技术手册里的一个餐馆的拍卖服务案例来描述)
?// 加入拍卖组?private void joinRestoNet() {?int count = 3; // 试图发现的最高循环次数?System.out.println( 试图发现组名为 RestoNet 对等组);?从NetPeerGroup获得发现服务?DiscoveryService hdisco = netpg.getDiscoveryService();?Enumeration ae = null; // 记录发现的广告。?// 循环直到我们发现RestoNet对等组或是直到我们达到了试图预期发现的次数。?while (count-- 0) {?try {?// 第一次搜索对等体的本地缓存来查找RestoNet对等组通告。// 通过NetPeerGroup组提供的发现服务发现Name属性为RestoNet的对等组?ae = hdisco.getLocalAdvertisements(DiscoveryService.GROUP,Name, RestoNet);// 如果发现RestoNet对等组通告,该方法完成,退出循环。?if ((ae != null) ae.hasMoreElements()) {???????break;?????}// 如果我们没有在本地找到它,便发送发现远程请求。?// 参数依次为要查找的对等体ID,为空时不以此为发现条件;发现的通告类型,取值还有PEER,和ADV;?// 要发现的通告属性名称;属性取值;需获取的最大通告数量;发现监听器??hdisco.getRemoteAdvertisements(null, DiscoveryService.GROUP,Name, RestoNet, 1, null);?// 线程暂停一下等待对等体內该发现请求。??try {????????
您可能关注的文档
- 培训师培训—陕晶众管理模式实施准备.ppt
- 培训楼应急疏散练方案(B、C、D区).doc
- 培训的流程和培训费用的核算.ppt
- 基于4C理论的书馆营销策略研究.doc
- 培训评估 2012.ppt
- 基于ATtin13的手电筒(头灯)控制电路和程序.doc
- 基于Android的消灭星星游戏的设计及实现.doc
- 基于CORBA服务器-客户间对象定位.ppt
- 基于CVSD及PSK调制的语音数字通信系统的设计.docx
- 基于CS545A的三相多功能电表设计.doc
- 小学科学:ESP8266智能插座电路原理与动手实践研究教学研究课题报告.docx
- 《金融开放浪潮下我国多层次监管体系构建与创新研究》教学研究课题报告.docx
- 区域教育质量监测中人工智能应用的数据质量分析与优化策略教学研究课题报告.docx
- 《金融科技监管中的数据治理与合规性要求》教学研究课题报告.docx
- 《3D打印技术在航空航天领域中的多材料制造与复合材料应用》教学研究课题报告.docx
- 《绿色金融发展中的政府职能与市场机制研究》教学研究课题报告.docx
- 《植物工厂多层立体栽培光环境调控技术对植物生长发育节律的调控机制探讨》教学研究课题报告.docx
- 销售团队年度业绩总结.docx
- 银行风险管理与金融危机防范.docx
- 银行网络攻击预警与快速响应机制.docx
文档评论(0)