JXTA中两个对等点发现对方ID的途径

   两个对等点要通过管道进行相互通信,那么它们必须都要知道这个管道的ID,如何使得两个对等点都知道这个ID呢?有一下几种途径:

1、  两个对等点是通过相同的管道通告文件来创建管道的。例如下例:

FileInputStream fis = new FileInputStream("e://pipe.adv");

pipeAdv=(PipeAdvertisement) AdvertisementFactory.newAdvertisement(MimeMediaType.TEXTUTF8, fis);

fis.close();

pipeIn = pipeSvc.createInputPipe(pipeAdv,this);

其中pipe.adv就是双方公用的通告文件,是符合通告文件格式的xml文件。

 

2、  在运行时一方发布自己的管道ID,另一方去发现这个ID

3、  双方都使用一个互相知道的公共ID

通过第一种方式创建输入通道时,有一定危险。因为很可能多个运行的Peer都使用这个相同的通告文件。这样,你就可能在同错误的Peer进行通信呢。

使用第二种方式就没有这种危险了,但是也有麻烦。一个问题是如何寻找发现。当一个Peer要同另一个Peer通信时,它首先需要寻找对方的管道通告。而要寻找对方的管道通告,就必须知道这个管道通告的某种信息,通常都是其“Name”属性。因此,当一个Peer在创建管道通告时,就需要注意考虑如何让你创建的这个管道通告能够被其它Peer发现。另一个问题就是当你搜索发现管道时候,也要考虑到已经被发布的管道通告的生命周期。默认情况下,发布在本地缓存的通告被保持365天,而远程发布的通告则被保持2小时。当你在发布一个通告时,一般还需要减少该时间,不过也可以加长该时间。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值