如何使用jxta技术建立p2p网络

如何使用jxta技术建立p2p网络

ID:21207987

大小:57.50 KB

页数:11页

时间:2018-10-20

如何使用jxta技术建立p2p网络_第1页
如何使用jxta技术建立p2p网络_第2页
如何使用jxta技术建立p2p网络_第3页
如何使用jxta技术建立p2p网络_第4页
如何使用jxta技术建立p2p网络_第5页
资源描述:

《如何使用jxta技术建立p2p网络》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、... 如何使用JXTA技术建立P2P网络通过之前将近一个月对于JXTA技术的研究,终于大致了解了P2P网络JXTA技术的JAVA语言实现过程,特整理出来,以供大家交流讨论。其实,关于概念和该技术的介绍,也可以找到一些资料,在此我就不再介绍,我直接通过代码来描述一个P2P网络在JXTA技术下用JAVA语言实现的过程。 第一步,大家需要下载JXTA的类库,在http://www.jxta.org上可以下载到最新版本。我这里提供JXTA2.4.1的版本(很抱歉,超过限制上传不了!我会在论坛上另外上传,包括CHM格式的技术手册)

2、。 第二步,新建一个JAVA工程,将这些JAR包添加至构建路径(此处是采用Eclipse,用其他IDE,或是直接将这些JAR包添加到CLASSPATH也行)。 第三步,我们将开始代码编写了。新建一个类。其main方法及其调用方法代码如下: publicstaticvoidmain(String[]args){ RestoPeermyapp=newRestoPeer();  //此处实例化一个对等体对象。 myapp.startJxta();                                  //此处启动JX

3、TA方法,用来加入组,获得服务等等。 System.exit(0);                                      //功能至完成,退出系统。 }publicvoidstartJxta(){ try{         加入默认对等组NetPeerGroup netpg=newNetPeerGroupFactory().getInterface(); }catch(PeerGroupExceptione){    //TODOAuto-generatedcatchblock    e.printS

4、tackTrace();}  ...... }...... 此处需要注意的是,由于JXTA技术的不断更新,其类库结构和实现已发生很大变化,此处加入默认对等组是2.4.1版本中的新方法。JXTA技术手册上的方法已过时。 第四步,我们需要获得默认对等组为我们提供的发现服务: DiscoveryServicedisco=netpggetDiscoveryService(); 此时,我们便可以利用disco服务来查找我们所需的广告了。 第五步,我们需要查找一个属于我们自己的对等组,如果找不到,我们则创建一个这样的对等组。此时只是为

5、了得到我们所需要的服务。因为每个对等组里所提供的服务并不全部相同。我们通常会把相同的目的的对等体通过一个对等组来组织起来。一个加入对等组的代码如下:(此例采用JXTA技术手册里的一个餐馆的拍卖服务案例来描述) //加入拍卖组 privatevoidjoinRestoNet(){ intcount=3;//试图发现的最高循环次数 System.out.println("试图发现组名为RestoNet对等组"); 从NetPeerGroup获得发现服务 DiscoveryServicehdisco=netpg.getDisco

6、veryService(); Enumerationae=null;//记录发现的广告。 //循环直到我们发现RestoNet对等组或是直到我们达到了试图预期发现的次数。 while(count-->0){ try{ //第一次搜索对等体的本地缓存来查找RestoNet对等组通告。//通过NetPeerGroup组提供的发现服务发现"Name"属性为"RestoNet"的对等组 ae=hdisco.getLocalAdvertisements(DiscoveryService.GROUP,"Name",......"Res

7、toNet");//如果发现RestoNet对等组通告,该方法完成,退出循环。 if((ae!=null)&&ae.hasMoreElements()){       break;     }//如果我们没有在本地找到它,便发送发现远程请求。 //参数依次为要查找的对等体ID,为空时不以此为发现条件;发现的通告类型,取值还有PEER,和ADV; //要发现的通告属性名称;属性取值;需获取的最大通告数量;发现监听器  hdisco.getRemoteAdvertisements(null,DiscoveryService.G

8、ROUP,"Name","RestoNet",1,null); //线程暂停一下等待对等体內该发现请求。  try{         Thread.sleep(timeout);         }catch(InterruptedExceptione){           //TODOAuto-ge

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。