`

JXTA中使用JxtaServerPipe和JxtaBiDiPipe实现双向可靠的通信

 
阅读更多

前面我们讲到如何在JXTA中创建单向不可靠的通信渠道,本节我们将介绍如何用JxtaServerPipe和JxtaBiDiPipe实现双向可靠的通信。在这里只是介绍在程序中是如何利用这两个类来实现的过程。

利用NetPeerGroup,PipeAdvertisement,也即是默认的网络对等组和特定的管道广告,这个管道广告是我们自己生成的。可以在代码在实现生产的,也可以通过读取广告文件来生成这个广告。有了这两个参数我们就可以实例化一个JxtaServerPipe.

JxtaServerPipe serverPipe = new JxtaServerPipe(netPeerGroup,serverPipeAdv);

然后再设定JxtaServerPipe多久连接超时,这只是为了不让程序无限的等待下去。

serverPipe.setPipeTimeout(0);设为0,却就是默认的最大超时时间。

作好上面的步骤,下面我们就只是在等待目标Peer发出连接请求了。

JxtaBiDiPipe bipipe = serverPipe.accept();//这句表示在等待连接,其实等待连接的结果,就是为了产生一条双方共用的JxtaBiDiPipe管道,其就是可以其实双向可靠通信的管道。

通过上面可以看过其实JxtaServerPipe只是为了得到一条JxtaBiDiPipe,然后提供给Peer之间使用来通信。也就是说,我们还需要两个要通过该双向管道通信的节点,在这里我们创建了三个类,JxtaServerExample,ConnectionHandler,JxtaBidiExample。后两者都需要实现PipeMsgListener接口。因为两个都要接收信息。也就是说其实JxtaServerExample是起连接作用的,而真正通信的节点是后两者。

附件中给出实现的代码,也可以通过代码体会一下过程。

4
2
分享到:
评论
3 楼 yinboxian 2014-10-31  
源码太乱了
2 楼 cuizhenfu#gmail.com 2014-05-24  
http://www.cnblogs.com/cuizhf
1 楼 q7779062 2010-05-15  
你好,牙哥!我毕设选的是Jxta的即时通信,看了你的程序和讲解,确实给了我很大的帮助! 我发现像你这样开博研究Jxta的很少,希望你继续努力!!!

相关推荐

Global site tag (gtag.js) - Google Analytics