- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于JXTAP2P即时通信软件Java实现研究
基于JXTAP2P即时通信软件Java实现研究
摘 要:JXTA是Sun公司专为P2P应用程序所搭建的一个平台,该平台可通过Java实现。通过JXTA平台中的6大协议、3大层,运用Java编程语言,能够实现基于多个peer节点的P2P即时通信。其中即时通信模块是该软件的核心部分,利用JXTA平台提供的服务构建一个输入管道与输出管道,设计一个JXTASocket包,将peer接口方法整合到该软件包内,即可循环完成即时通信。文章基于JXTA平台,利用平台的JAVA绑定,设计了一款混合型的P2P即时通信软件,真正实现了P2P跨网络的即时通信。
关键词:JXTA;P2P;即时通信软件;Java实现
P2P是Peer-to-Peer,是一种对等网络工作模式,在此模式下,能够将服务器弱化或者完全取消,所有结点均是服务器与客户机的结合,是对等关系。P2P网络具有良好的扩展性,能够更好地利用网络边缘资源,避免发生单点故障,是当前互联网领域应用广泛的一种模式[1]。
1 JXTA平台
JXTA平台是一个专为P2P网络应用的开发所设计的平台,既能够为P2P网络的构建提供一组协议,又能够为P2P应用程序的开发提供一个平台,能够提供基于Java语言的应用程序编程接口(Application Programming Interface,API)。JXTA协议能够支持多种对等点之间的直接通信,无需经过中心服务器,即可相互发现并完成通信。其核心构件包括peer(对等点),如PC机、传感器或移动通信设备等能够实现JXTA协议的实体;peer group(对等组),目的相同的对等点集合形成的一个跨越不同物理网络的组;Service(服务),对等点与对等组均能够提供服务,对等点独立提供一个peer服务,对等组则由整个组提供一个peer group服务;Pipe(管道),对等点之间的虚拟连接,是JXTA信息在各个节点之间发送与接收的途径;Message(信息),JXTA平台可以通过XML方式与二进制方式传递信息;Advicement(广告),利用XML文档的方式交换JXTA中所有可用的信息,可以是一个对等点、一个对等组、一个管道或者一个服务的信息[2]。
2 基于JXTA的P2P即时通信软件的Java实现
2.1 peer接口的设计
JXTA中的peer之间通过Pipe完成通信,各Pipe都是通过相同的通信连接方式与过程运行的,因此,可以将peer节点的连接设计为一个JXTASocket包,用以封装全部的peer通信。该包中包含public interface peer{、public boolean bind()(peer和输入管道绑定,并开始执行监听功能)、public void run()(发送和输入管道绑定的信息)、public boolean connect()(绑定输出管道,并构建通信连接)、public boolean sendMessage()(利用输出管道发送信息)、public void setOutListener()(设定输出管道的监听器)、public void setInListener()(设定输入管道的监听器)、public void createGroup()(建立对等组)、public void joinGroup()(加入对等组)、public void leaveGroup()(离开对等组)、public boolean searchGroupWithName()(搜索对等组)、public boolean searchPeerWithName()(搜索对等点)等方法。
2.2 聊天信息即时通信的实现流程
(1)通过DiscoveryService构建一个信息输入管道:以 pipeSvc.createInputPipe()。(2)执行监听,设定一个输入管道Listener,设定public void pipeMsgEvent()的方法,消息到来时,该程序就会自动监听。(3)解析收到的信息,利用信息解析协议,通过String userName,String sendContent对消息进行解析。(4)与监听到的管道通知进行连接,并构建一个信息输出管道pipeOutService.createOutputPipe()。(5)在输出管道中利用newChatMessage()的方法?l送信息,先将信息全部封装为new Message,再利用输出管道将其发送出去。(6)在信息到达输入管道时,再调用pipeMsgEvent()的方法,获取、解析、显示即时信息,完成这一步,即完成了一次完整的即时通信。这一流程的反复运行,即是P2P即时通信系统的实现。
2.3 文件传输即时
原创力文档


文档评论(0)