新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 一种基于Android和JXTA协议模型的无线D2D通信技术

一种基于Android和JXTA协议模型的无线D2D通信技术

作者: 时间:2012-07-16 来源:网络 收藏

2.2 节点搜索功能
该功能主要用于对网络上的Peer节点进行搜索,维护一个节点列表。该搜索程序通过对等机发现PDP(Peer Discovery Protoc ol)进行节点搜索,PDP定义了发现其他Peer和资源的,该包括两个方面:一方面用于请求获得其他Peer的Advertisement;另一方面用于响应其他Peer的这种请求。Peer给所有已知的Peer和Rendezvous Peer发送一个Discovery Query Message,Rendezvous Peer对Discove ry请求进行处理,并返回一个Discovery Response Message,其中包含其缓存中advertisement。另外它还把这个请求广播给所有知道的Pe er,收到请求的Peer搜索本地缓存寻找匹配advertisement,如果找到,就直接给最初的请求方发送一个Discovery Response Message。该程序运行在一个线程中,在该线程中执行一个循环,每隔30 s获取一次节点列表。节点搜索线程代码如下:
e.JPG
f.JPG
当用户单击Peer List菜单选项时,Peer节点从RDV集合点读取节点列表,并显示在相应的UI界面中,如图4所示。

本文引用地址:https://www.eepw.com.cn/article/154424.htm

i.JPG


而网络节点列表收集主要完成启动并初始化网络,形成一个网络集合点Rendezvous Peer,集合点服务的主要功能是允许Peer网络上的其他Peer传播消息。该集合点可以监听到所有相邻网络请求连接的Peer节点,包括PC机模拟节点和手机节点,通过一个节点列表对当前节点的信息进行维护,接收节点的连接与退出请求。当用户单击Leave Network要离开网络时,必须通过advertisement通知RDV节点,此时RDV节点就可以更新所拥有的节点列表,当其他节点下一次从RDV节点读取节点列表信息时,就可以及时地更新在线的节点。
集合点类的设计主要是通过集合点协议RVP(Rendezvous Protocol),简单Peer运用该协议同集合点相连接,由集合点代表自己向其他Peer传播消息。RVP的实现扮演双重角色,为传播消息提供了统一的API,该功能不依赖Peer是否配置成集合点。
2.3 通信模块的设计
通信模块采用双向管道进行消息传输。当用户登录之后,启动一个线程,在线程里创建JxtaServerPipe,不停轮询,等待其他用户发来的消息。当用户A想与用户B聊天时,只要建立一个到用户B的JxtaBiDiPipe,该JxtaBiDiPipe和用户B的JxtaServerPipe进行连接。聊天消息是用XML进行封装的,不同的消息可以定义不同的命名空间,以便接收端进行区别。而且一条消息可以包含多部分信息,比如区分消息的版本、消息发送者名字等等。接收端对接收到的消息进行解析处理,然后显示到聊天对话界面里。
信息发送的源代码(信息接收的实现类似)如下:
g.JPG

p2p机相关文章:p2p原理




评论


相关推荐

技术专区

关闭