<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 一種基于Android和JXTA協(xié)議模型的無線D2D通信技術(shù)

          一種基于Android和JXTA協(xié)議模型的無線D2D通信技術(shù)

          作者: 時(shí)間:2012-07-16 來源:網(wǎng)絡(luò) 收藏

          2.2 節(jié)點(diǎn)搜索功能
          該功能主要用于對網(wǎng)絡(luò)上的Peer節(jié)點(diǎn)進(jìn)行搜索,維護(hù)一個(gè)節(jié)點(diǎn)列表。該搜索程序通過對等機(jī)發(fā)現(xiàn)PDP(Peer Discovery Protoc ol)進(jìn)行節(jié)點(diǎn)搜索,PDP定義了發(fā)現(xiàn)其他Peer和資源的,該包括兩個(gè)方面:一方面用于請求獲得其他Peer的Advertisement;另一方面用于響應(yīng)其他Peer的這種請求。Peer給所有已知的Peer和Rendezvous Peer發(fā)送一個(gè)Discovery Query Message,Rendezvous Peer對Discove ry請求進(jìn)行處理,并返回一個(gè)Discovery Response Message,其中包含其緩存中advertisement。另外它還把這個(gè)請求廣播給所有知道的Pe er,收到請求的Peer搜索本地緩存尋找匹配advertisement,如果找到,就直接給最初的請求方發(fā)送一個(gè)Discovery Response Message。該程序運(yùn)行在一個(gè)線程中,在該線程中執(zhí)行一個(gè)循環(huán),每隔30 s獲取一次節(jié)點(diǎn)列表。節(jié)點(diǎn)搜索線程代碼如下:
          e.JPG
          f.JPG
          當(dāng)用戶單擊Peer List菜單選項(xiàng)時(shí),Peer節(jié)點(diǎn)從RDV集合點(diǎn)讀取節(jié)點(diǎn)列表,并顯示在相應(yīng)的UI界面中,如圖4所示。

          本文引用地址:http://www.ex-cimer.com/article/154424.htm

          i.JPG


          而網(wǎng)絡(luò)節(jié)點(diǎn)列表收集主要完成啟動(dòng)并初始化網(wǎng)絡(luò),形成一個(gè)網(wǎng)絡(luò)集合點(diǎn)Rendezvous Peer,集合點(diǎn)服務(wù)的主要功能是允許Peer網(wǎng)絡(luò)上的其他Peer傳播消息。該集合點(diǎn)可以監(jiān)聽到所有相鄰網(wǎng)絡(luò)請求連接的Peer節(jié)點(diǎn),包括PC機(jī)模擬節(jié)點(diǎn)和手機(jī)節(jié)點(diǎn),通過一個(gè)節(jié)點(diǎn)列表對當(dāng)前節(jié)點(diǎn)的信息進(jìn)行維護(hù),接收節(jié)點(diǎn)的連接與退出請求。當(dāng)用戶單擊Leave Network要離開網(wǎng)絡(luò)時(shí),必須通過advertisement通知RDV節(jié)點(diǎn),此時(shí)RDV節(jié)點(diǎn)就可以更新所擁有的節(jié)點(diǎn)列表,當(dāng)其他節(jié)點(diǎn)下一次從RDV節(jié)點(diǎn)讀取節(jié)點(diǎn)列表信息時(shí),就可以及時(shí)地更新在線的節(jié)點(diǎn)。
          集合點(diǎn)類的設(shè)計(jì)主要是通過集合點(diǎn)協(xié)議RVP(Rendezvous Protocol),簡單Peer運(yùn)用該協(xié)議同集合點(diǎn)相連接,由集合點(diǎn)代表自己向其他Peer傳播消息。RVP的實(shí)現(xiàn)扮演雙重角色,為傳播消息提供了統(tǒng)一的API,該功能不依賴Peer是否配置成集合點(diǎn)。
          2.3 通信模塊的設(shè)計(jì)
          通信模塊采用雙向管道進(jìn)行消息傳輸。當(dāng)用戶登錄之后,啟動(dòng)一個(gè)線程,在線程里創(chuàng)建JxtaServerPipe,不停輪詢,等待其他用戶發(fā)來的消息。當(dāng)用戶A想與用戶B聊天時(shí),只要建立一個(gè)到用戶B的JxtaBiDiPipe,該JxtaBiDiPipe和用戶B的JxtaServerPipe進(jìn)行連接。聊天消息是用XML進(jìn)行封裝的,不同的消息可以定義不同的命名空間,以便接收端進(jìn)行區(qū)別。而且一條消息可以包含多部分信息,比如區(qū)分消息的版本、消息發(fā)送者名字等等。接收端對接收到的消息進(jìn)行解析處理,然后顯示到聊天對話界面里。
          信息發(fā)送的源代碼(信息接收的實(shí)現(xiàn)類似)如下:
          g.JPG

          p2p機(jī)相關(guān)文章:p2p原理




          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();