前面我们讲到如何在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是起连接作用的,而真正通信的节点是后两者。
附件中给出实现的代码,也可以通过代码体会一下过程。
分享到:
相关推荐
基于JXTA的P2P即时通信软件的Java实现研究这篇论文详细介绍了如何使用Java语言实现基于JXTA平台的对等网络即时通信软件。JXTA是由Sun公司开发的一个专门针对P2P应用程序的平台,它允许通过Java编程语言实现多种对等...
9. **软件工程方法**:设计和实现过程中遵循软件工程的规范,将系统分解为多个模块,便于开发、测试和维护。每个模块都有明确的功能,通过接口进行交互,提高了代码的可读性和可维护性。 10. **测试与评估**:在...
整个通信流程遵循JXTA通信模型,确保了高效和可靠的通信效果。 在系统实现上,分为网络配置、对等体发现、聊天、文件共享和用户界面五个模块。网络配置模块负责检查和设置网络连接,对等体发现模块实现设备间的相互...
JXTA技术的核心是XML消息传递,它使用一套标准协议来构建P2P网络,使得节点可以直接交流,实现数据交换、服务发现和资源的共享。 标题中的"jxta例程"指的是利用JXTA技术编写的示例程序,这些示例通常用于教学或演示...
JXTA通过定义一系列协议,使得不同设备之间的P2P通信变得更加简单和可靠。 **论文**通常会深入探讨JXTA的架构、核心概念、协议栈以及其在P2P通信系统中的应用。论文可能会涵盖以下几个方面: 1. **JXTA架构**:...
2. **管道(Pipes)**:管道是JXTA中数据通信的基础,允许节点间双向传输消息。chapt13code.zip可能包含建立和使用不同类型的管道(如单播、广播或多播管道)的代码。 3. **服务发现**:JXTA提供了自动发现网络中可用...
书中会介绍JXTA提供的安全机制,如证书管理、加密和签名,以确保在P2P网络中的通信安全可靠。 总的来说,"精通JXTA"是一本全面而深入的JXTA指南,不仅适合初学者理解P2P网络的基本概念,也适合有经验的开发者深化对...
5. **管道通信**:管道是JXTA中节点间通信的主要机制,支持单向和双向数据流。理解管道的工作原理和创建、连接、发送和接收数据的方法是必要的。 6. **安全与隐私**:JXTA提供了安全特性,如基于证书的身份验证和...
综上所述,这个研究项目可能详细探讨了如何使用JXTA框架来设计和实现一个功能完备、安全可靠的P2P即时通信软件,包括身份认证、消息传递、服务发现、数据安全等多个方面。通过这种方式,开发者可以构建出一个高效、...
通过这些实例,读者可以学习到如何使用JXTA API来实现设备之间的通信,以及如何设计和实现P2P服务。 ### JXTA管道与安全 JXTA管道是其通信模型的核心部分,分为推送管道(Push Pipe)和请求管道(Request Pipe)。...
Jxta应用程序设计是指使用Jxta技术设计应用程序,旨在实现基于P2P模式的即时通信软件。Jxta应用程序设计需要考虑到Jxta的特点,例如基于Java的API、抽象层和对等点管理。 知识点9:Peer接口设计 Peer接口设计是指...
而"P2pSocket"文件很可能是具体的Java源代码示例,展示了如何在JXTA环境中创建和使用P2pSocket进行通信。通过分析这个示例,开发者可以学习到如何设置连接参数、建立安全连接、读写数据以及处理网络异常等关键操作。...
这些JAR文件提供了接口和实现,涵盖了从设备发现、服务发布到消息传递等一系列P2P功能。开发者可以通过导入这些JAR文件,调用相关的类和方法,轻松地构建P2P应用程序。 **JXTA_XChat**是基于JXTA的一个示例应用,它...
3. **管道(Pipes)**: 管道是JXTA中的通信机制,允许节点之间进行双向、可靠的数据传输。管道分为点对点管道和多对多管道。 4. **服务(Services)**: JXTA提供了多种服务,如身份验证、发布/订阅、文件共享等,...
开发者可以通过JXTA的API创建可靠的、安全的通信通道,实现节点间的实时交互。 在压缩包中的文件列表虽然没有给出具体名称,但可以假设包含了以下内容: 1. **JXTA技术介绍**:这可能是关于JXTA的理论背景和基本...
JXTA中需要加密通信,例如在身份验证和数据传输过程中,Bouncy Castle库提供了必要的加密服务。 3. **org.mortbay.jetty.jar**:Jetty是一款轻量级的HTTP服务器和Servlet容器,被用作JXTA的一部分,以支持P2P网络中...
如果你是JXTA的初学者,通过分析和运行JxtaMessenger项目,你可以了解如何配置JXTA环境,如何创建和加入对等组,以及如何实现P2P通信。此外,你还可以深入研究其代码,理解JXTA API的使用方法,例如如何创建和管理...
在JXTA 2.7中,重点在于Shell 2.5,这是一个命令行界面工具,开发者可以使用它来管理JXTA网络,执行各种任务,如配置节点、发布和查找资源、监控网络状态等。Shell 2.5提供了更友好的用户交互体验,增强了命令的...