来源(Chinese Linux University)

From: http://www.chineselinuxuniversity.net/articles/33940.shtml

摘自: www.chinaitlab.com 被阅读次数: 12

由 yangyi 于 2010-04-12 21:32:13 提供

管道通信都是单向不可靠的。如果JXTA只提供它,那JXTA就太逊了。当然不可能,JXTA不只提供单向不可靠的通信渠道,也提供了双向可靠的通信渠道,在基于JXTA管道提供单向,不可靠的通信渠道。由于管道对于服务和应用更加有用,在管道上实现双向和可靠通信渠道是很重要的。JXSE 提供了满足大多数应用相对高水平的要求的功能:即,可靠,确保信息顺序,确保传递,公开信息和接口,安全。这才是JXSE追求的理想中的通信渠道。从最早的版本提供的 BidirectionPipeService到现在的JxtaServerPipe和JxtaBiDiPipe,JxtaServerSocket和 JxtaSocket。

下面我们来说说这两种不同双向可靠的通信渠道存在什么共同点和不同点。

1、共同点:建立在管道之上,端点信使,和可靠数据包;

提供双向,可靠和安全的通信渠道

不同点:JxtaSocket and JxtaServerSocket

1、公开一个流基本接口

2、提供可配置的内部缓冲和信息块

3、流一定要清空

JxtaBidiPipe and JxtaServerPipe:

1、共开一个信息基本接口

2、不提供信息块,所以在程序中必须要注意信息最大不要超过标准信息大小64K。

站在更高一层面看,其实两种的建立连接和通信的过程都一样的。

我们可以看到两个都有一个Server,其实在这里Server只是起到连接作用。而且真正的通信是 JxtaBidiPipe,JxtaSocket。这样说可能大家还是不太清楚,下面给出一个图,就很容易理解了。



从上图我们可以看到,其实就是利用JxtaBiDiPipe,JxtaSocket来通信。只是两个节点间建立起这两种渠道,就可以进行双向可靠的通信。

原文链接: http://java.chinaitlab.com/p2pJxta/805597.html

Link: http://www.asm32.net/article_details.aspx?id=5478