`

(JXTA P2P)利用监听DiscoveryListener发现远程广告

阅读更多

最近朋友们一直都是问为什么老是远程发现不了。估计都是以前书上的例子害的。我们看过这么多书,一定会发现,所有的例子都是本地发现的。而且只是写出了远程发现的语句,但是其实只是向我们显示如何远程发现,其实并没有说明远程发现的结果到底出现在那里,谁去接受远程发现的广告。

下面我们就用一个很简单的例子来说明一下,远程发现的结果到底出现在那里。在很多例子中我们经常看到这句语句dis.getRemoteAdvertisements(null , DiscoveryService.GROUP, key,name, 1, null );,而且会说明这个是远程发现广告。细心的朋友会去查看,有几个这种的方法,各个参数是什么类型。

 

结果我们就会发现最后1个参数null,其实是一个DiscoveryListener,结果终于出来啦。就是它,DiscoveryListener监听。下面给出一个简单的代码,并在代码中写明是如何发现的,得到结果的。

public class DiscoveryPeer implements DiscoveryListener {//第1步:首先我们要实现这个DiscoveryListener监听
    private PeerGroup peerGroup = null;
    private DiscoveryService dis = null;
    public void launchJXTA(){
        try {
            peerGroup  =  new NetPeerGroupFactory().getInterface();
            dis = peerGroup.getDiscoveryService();
        } catch (PeerGroupException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
       
    }
    //第2步:真正实现这个发现事件。得到发现的广告,重点就是这里,这里你会发现你指定发现的广告,然后得到你想要的广告。
    public void discoveryEvent(DiscoveryEvent event) {
        //mes里面就有我们所需要的广告内容,然后我们只要为远程发现广告,添加这个监听。结果就保存在DiscoverEvent
       
        DiscoveryResponseMsg  mes = event.getResponse();
    }
    //第3步:为需要远程发现监听的地方添加监听。
    public void discoveryAdv(){
        dis.getRemoteAdvertisements(null, DiscoveryService.ADV,
                "Name", "张三", 5, this);//这里这个this,就是为本Peer添加该监听
    }
   
    //完成上面三步,利用远程发现广告就完全实现的了。只是一发现你需要的广告,就会触发discoveryEvent,然后利用event.getResponse()返回结果。
}

 

希望上面能让学习的同学理解。

3
2
分享到:
评论
6 楼 leigous 2011-04-18  
牙哥!跨防为墙通信该怎么做!!
5 楼 yufei1536 2010-06-21  
你好,我是在一个路由器下两台机器做jxta通信的,一个作为服务方,发布管道广告,建立输入管道,等待连接,另外一个作为客户端,搜索这个管道广告,然后用这个广告连接,牙哥你看这个思路有问题吗?我刚开始做jxta知道的很少,希望能指点我。在我博客里有,如果有空请帮我看看,谢谢。
4 楼 lyndon.lin 2010-05-20  
上面不说了返回结果是这个event.getResponse()。不是dstmp.getRemoteAdvertisements(null, DiscoveryService.GROUP, "Name",
"MyChatGroup", 1,this); 这个函数等于多少。你再仔细看一下上面的文字。
还有就是如何加入对等组,可以看看http://lyndon-lin.iteye.com/blog/636716我写这篇博客。
3 楼 lifeng_2009 2010-05-19  
牙哥:
     我现在已经能在网络上搜索到PeerGroup了。之前你写过文章在本地发现PeerGroup,是用
Enumeration  en = dstmp.getLocalAdvertisements(DiscoveryService.ADV,
"Name", "MyChatGroup:PipeAdv:" + name);
来接收,但是现在用
dstmp.getRemoteAdvertisements(null, DiscoveryService.GROUP, "Name",
"MyChatGroup", 1,this);
搜索网络的时候返回的是一个INT类型的
我想把本地的PEER 加入到MyChatGroup 不知道该怎么加入,能帮助下吗?
2 楼 lyndon.lin 2010-05-18  
呵,太过奖了。只是知道而已
1 楼 lifeng_2009 2010-05-18  
牙哥 感觉你写书都可以了,精通啊!

相关推荐

    jxta远程教学p2p技术

    远程教学 P2P jxta java 远程教学 源代码 jxta远程教学p2p技术,一个很好的P2P例子

    JXTA-P2P.rar_jxta p2p_p2p jxta_p2p java_p2p jxta

    通过之前将近一个月对于JXTA技术的研究,终于大致了解了P2P网络JXTA技术的JAVA语言实现过程,特整理出来,以供大家交流讨论。其实,关于概念和该技术的介绍,也可以找到一些资料,在此我就不再介绍,我直接通过代码...

    JXTA P2P编程技术例程

    网上收集的JXTA P2P编程技术例程资料,做了下简单的整理。

    JXTA Java P2P 网络编程技术

    JXTA Java P2P 网络编程技术

    fk.zip_jxta_局域网 jxta p2p

    基于jxta的P2P框架的系统,主要功能有局域网聊天、文件共享系统、白板等。

    jxta java的p2p平台 笔记

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

    ConnectX.rar_局域网 jxta p2p

    基于jxta的P2P框架的系统,主要功能有局域网聊天、文件共享系统、白板等。

    jxta p2p ieee 论文

    IEEE 论文 大家好好利用它学习p2p算法哦

    jxta.rar_JXTA 文件_jxta_jxta-java-p2p.rar_p2p jxta_p2p文件共享

    jxta提供了你需要的技术来编写网络化的,互操作的P2P应用程序,可以容易地跨防火墙来动态发现网络上其它的对等成员,容易地跨网络和任何人共享文件,在你喜爱的站点发现每分钟更新的内容,创建一个对等成员组,成员...

    JXTA——Java P2P网络编程技术

    首先,JXTA是为了构建P2P网络而制订的一组协议,是解决构建P2P网络必须要解决的问题的方法。 其次,JXTA是P2P应用程序开发的运行平台。目前,JXTA首先推出了基于Java的参考实现的。

    JXTA JXTA.jar

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

    新一代P2P技术JXTA初探

    JXTA 平台是 P2P 技术的进一步发展, 它给开发人员提供了一套统一的灵活的标准协议和类库。 使用 JXTA 平台, 开发人员可以从具体的 P2P 技术底层细节中解脱出来, 从而更加专注于应用程序的功能实现。

    基于JXTA 的P2P 即时通讯系统的设计与改进 论文

    基于JXTA 的P2P 即时通讯系统的设计与改进 论文基于JXTA 的P2P 即时通讯系统的设计与改进 论文基于JXTA 的P2P 即时通讯系统的设计与改进 论文基于JXTA 的P2P 即时通讯系统的设计与改进 论文

    jxta-java p2p网络编程技术

    jxta-java p2p网络编程技术

    ComputeStats.rar_jxta p2p_site:www.pudn.com_协同

    一种基于JXTA的协同工作P2P系统.caj

    JXTA-Java P2P网络编程技术(PDF)

    JXTA是美国sun公司在JAVA领域里推出的新技术,目的是为P2P(peer-to-peer)的网络应用开发提供一个统一的平台 而贝为了鼓励和支持该技术的发展,JxTA项目采用了开放源代码的方式进行.吸引了大量业界人士参与到JXTA...

    基于jxta的p2p即时通信系统设计

    毕业论文设计,题目是基于jxta的p2p即时通信系统设计,这只是论文

    基于JXTA的P2P通信

    ppt答辩 基于JXTA的P2P通信 的研究与应用

    JAVA,JXTA,P2P,lM

    本软件起源于我研究JAVA P2P-JXTA(一个开源的P2P项目,由当年的SUN技术牛人BillJoy发起,网址:jxta.dev.java.net), 所以这个项目以后也会在JXTA社区中发布,相信对JXTA在实际中应用,也会有比较大的参考意义。 ...

Global site tag (gtag.js) - Google Analytics