`

在JXTA中如何搜索目标对等组中的所有Peer

XML 
阅读更多

在JXTA中发布和发现任何资源都是根据广告,因此,我们要发现Peer也却是发现PeerAdvertisement的过程。该如何发现一个对等组内所有的Peer,和打印出它们的信息呢?

首先,我们要搜索Peer,那我们必须要找到一下存在的PeerGroup,找到PeerGroup,我们再找到其下面的Peer。如何发现PeerGroup,我们可以回头看看

如何从HelloWorld开始学习JXTA,在这里我就不详细说明。下面直接用代码和文字结合来讲明如何打印出HelloWorld对等组下面的所有Peer的信息。示例代码如下:

public class FindAllPeer {

 /**
  * @param args
  */
 private PeerGroup helloWorld = null;//目标PeerGroup
 private PeerGroup netpg = null;//NetGroup
 private PeerGroupAdvertisement pgAdv = null;//对等组广告
 private DiscoveryService hdisco = null;//发现服务
 public FindAllPeer(){
  try {
   netpg = new NetPeerGroupFactory().getInterface();//得到当前目录Home下的NetGroup
   hdisco= netpg.getDiscoveryService();//获得NetGroup提供的发现服务
  } catch (PeerGroupException e1) {
   // TODO Auto-generated catch block
   e1.printStackTrace();
  }
  //HelloWorld.findPeerGroup功能块,是在上篇HelloWorld.java类中提供的
  pgAdv = (PeerGroupAdvertisement)HelloWorld.findPeerGroup(hdisco, "Name", "HelloWorld").nextElement();//找到HelloWorld对等组广告
  System.out.println("HelloWorld对待组 ID : "+pgAdv.getPeerGroupID());
  try {
   helloWorld = netpg.newGroup(pgAdv);//找到目标对等组(HelloWorld对等组)
  } catch (PeerGroupException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }//
  Enumeration enu = null;//发现Peer广告
  int index = 0;
  StructuredTextDocument doc = null;
  StringWriter out = new StringWriter();
  try {
   //通过helloWorld组提供的发现服务发现"Name"属性为""的对等机
   enu = helloWorld.getDiscoveryService().getLocalAdvertisements(DiscoveryService.PEER,"Name","");//搜索HelloWorld对等组下面所有Peer信息
   System.out.println("目前HelloWorld PeerGroup下存在以下peer:");
   while((enu != null) && enu.hasMoreElements()){
    PeerAdvertisement adv = (PeerAdvertisement)enu.nextElement();//得到对等机广告
    doc = (StructuredTextDocument)adv.getDocument(MimeMediaType.XMLUTF8);//以XML格式得到PeerAdvertisement
    index++;
    System.out.println("Peer "+index+" ID :   "+adv.getID());//打印PeerID
    System.out.println("Peer "+index+" Name : "+adv.getName());//打印PeerName
    System.out.println("Peer"+index+"'s PeerAdvertisement: ");//打印该Peer的广告信息
    doc.sendToWriter(out);
    System.out.println(out.toString());
    out.close();
   }
  } catch (Exception e) {
   e.printStackTrace();
   System.exit(-1);
  }
 }
 public static void main(String[] args) {
  FindAllPeer pes = new FindAllPeer();
  System.exit(-1);
 }
 
}

在运行这段代码之前,最好保证运行过前篇HelloWorld.java,在不如果不存在对等组,可能会出现异常,而且打印不出Peer信息,因为对等组不存在。

2
0
分享到:
评论

相关推荐

    P2P优秀论文_一个建立在JXTA平台上的对等网络游戏框架的设计

    P2P优秀论文_一个建立在JXTA平台上的对等网络游戏框架的设计

    基于 C++ JXTA 开发出一个组内聊天和共享文件的软件【100010794】

    Peer-to-Peer 网络毫无疑问是当今的热点技术主题。Napster 和 Gnutella 的广泛使用证明了 peer-to-peer 应用...本论文设计探讨了 P2P 网络的结构和 JXTA 的基本知识,并利用 JXTA 开发出一个组内聊天和共享文件的软件。

    论文研究-基于JXTA架构的对等网络关键技术研究.pdf

    较为深入地分析了基于JXTA架构的对等网络关键技术,着重对JXTA虚拟网络、JXTA资源的发布、发现机制等核心问题进行了探讨,指出了目前JXTA RPV(Rendezvous Peer View)查询策略在效率上存在的不足,并针对这些不足提出...

    jxta运行的所有jar包

    jxta运行环境所需要的所有jar包 /files/JXTA_Demo/lib/jxta.jar /files/JXTA_Demo/lib/beepcore.jar /files/JXTA_Demo/lib/cryptix-asn1.jar /files/JXTA_Demo/lib/cryptix32.jar /files/JXTA_Demo/lib/jxtaptls.jar...

    JXTA-JavaP2P网络编程技术

    资源名称:JXTA-Java P2P网络编程技术内容简介:JXTA是美国Sun公司在Java领域里推出的新技术,目的是为P2P(Peer-to-Peer)的网络应用开发提供一个统一的平台。而且为了鼓励和支持该技术的发展,JXTA项目采用了开放...

    JXTA JXTA.jar

    jxta.jar p2p jxta.jar p2p jxta.jar p2p

    jxta-c-2.5.2.tar.zip

    JXTA使可共同使用的P2P应用程序拥有了许多能力,其中包括:在能简单地穿过防火墙通讯的不同设备的用户间建立对等组,在网络上找对等体的能力——甚至穿过防火墙,简化文件共享,自动侦测到新的网站目录,对对等体的...

    精通JXTA 。JXTAShell

    本书是一本介绍JXTA的书籍。主要内容包括:JXTA简介、JXTAShell使用说明、开发JXTA应用程序实例、JXTA管道及安全等。

    jxta java的p2p平台 笔记

    3)广告以及发现资源(在JXTA网络中,资源包括了很多含义:peers,管道,groups等) 4)相互通信 5)检测对方 利用JXTA,可以容易实现以下几个方面的互操作p2p程序 1)相互发现peers,不管peers是在防火墙还是NATs...

    JXTA经典JXTA经典

    JXTA目前的版本已经是2.5了,同以前的2.0、2.1之类的差别非常大,因此网络上2002年以前的文章,除了是阐述JXTA技术的概念类的文章可以学习外,具体开发类的就没有多大价值。 现将2.0版本和2.5版本同时上传,供大家...

    Mastering JXTA书中的源代码

    Mastering JXTA 书中的源代码,可以学习如何使用JXTA编程。对初学者很有帮助。

    Symbian平台JXTA对等网络协议的研究与实现.pdf

    Symbian平台JXTA对等网络协议的研究与实现.pdf

    jxta2.2 开发文档

    jxta2.2 开发文档

    JXTA\jxta-lib-2.4.1.zip

    JXTA\jxta-lib-2.4.1.zip 用来开发p2p应用程序的。

    jxta例程

    jxta的一些经典程序

    jxta2.7.zip

    JXTA 2.7,P2P分布式计算框架JXTA。version 2.7。shell 2.5.

    精通JXTA --本书是一本介绍JXTA的书籍

    精通JXTA 本书是一本介绍JXTA的书籍。主要内容包括:JXTA简介、JXTAShell使用说明、开发JXTA应用程序实例、JXTA管道及安全等。

    JXTA CMS搜索技术的研究

    JXTA CMS搜索技术的研究JXTA CMS搜索技术的研究JXTA CMS搜索技术的研究JXTA CMS搜索技术的研究

    JXTA技术文档 p2p学习研究

    对等网jxta协议方面的描述,对学习jxta很有帮助,对等网络中如何描述对等节点,以及作用

Global site tag (gtag.js) - Google Analytics