亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于JXTA的P2P即時通信軟件的Java實現(xiàn)研究

        2018-04-24 05:01:00王建
        無線互聯(lián)科技 2018年4期

        王建

        摘 要:JXTA是Sun公司專為P2P應(yīng)用程序所搭建的一個平臺,該平臺可通過Java實現(xiàn)。通過JXTA平臺中的6大協(xié)議、3大層,運用Java編程語言,能夠?qū)崿F(xiàn)基于多個peer節(jié)點的P2P即時通信。其中即時通信模塊是該軟件的核心部分,利用JXTA平臺提供的服務(wù)構(gòu)建一個輸入管道與輸出管道,設(shè)計一個JXTASocket包,將peer接口方法整合到該軟件包內(nèi),即可循環(huán)完成即時通信。文章基于JXTA平臺,利用平臺的JAVA綁定,設(shè)計了一款混合型的P2P即時通信軟件,真正實現(xiàn)了P2P跨網(wǎng)絡(luò)的即時通信。

        關(guān)鍵詞:JXTA;P2P;即時通信軟件;Java實現(xiàn)

        P2P是Peer-to-Peer,是一種對等網(wǎng)絡(luò)工作模式,在此模式下,能夠?qū)⒎?wù)器弱化或者完全取消,所有結(jié)點均是服務(wù)器與客戶機的結(jié)合,是對等關(guān)系。P2P網(wǎng)絡(luò)具有良好的擴展性,能夠更好地利用網(wǎng)絡(luò)邊緣資源,避免發(fā)生單點故障,是當前互聯(lián)網(wǎng)領(lǐng)域應(yīng)用廣泛的一種模式[1]。

        1 JXTA平臺

        JXTA平臺是一個專為P2P網(wǎng)絡(luò)應(yīng)用的開發(fā)所設(shè)計的平臺,既能夠為P2P網(wǎng)絡(luò)的構(gòu)建提供一組協(xié)議,又能夠為P2P應(yīng)用程序的開發(fā)提供一個平臺,能夠提供基于Java語言的應(yīng)用程序編程接口(Application Programming Interface,API)。JXTA協(xié)議能夠支持多種對等點之間的直接通信,無需經(jīng)過中心服務(wù)器,即可相互發(fā)現(xiàn)并完成通信。其核心構(gòu)件包括peer(對等點),如PC機、傳感器或移動通信設(shè)備等能夠?qū)崿F(xiàn)JXTA協(xié)議的實體;peer group(對等組),目的相同的對等點集合形成的一個跨越不同物理網(wǎng)絡(luò)的組;Service(服務(wù)),對等點與對等組均能夠提供服務(wù),對等點獨立提供一個peer服務(wù),對等組則由整個組提供一個peer group服務(wù);Pipe(管道),對等點之間的虛擬連接,是JXTA信息在各個節(jié)點之間發(fā)送與接收的途徑;Message(信息),JXTA平臺可以通過XML方式與二進制方式傳遞信息;Advicement(廣告),利用XML文檔的方式交換JXTA中所有可用的信息,可以是一個對等點、一個對等組、一個管道或者一個服務(wù)的信息[2]。

        2 基于JXTA的P2P即時通信軟件的Java實現(xiàn)

        2.1 peer接口的設(shè)計

        JXTA中的peer之間通過Pipe完成通信,各Pipe都是通過相同的通信連接方式與過程運行的,因此,可以將peer節(jié)點的連接設(shè)計為一個JXTASocket包,用以封裝全部的peer通信。該包中包含public interface peer{、public boolean bind()(peer和輸入管道綁定,并開始執(zhí)行監(jiān)聽功能)、public void run()(發(fā)送和輸入管道綁定的信息)、public boolean connect()(綁定輸出管道,并構(gòu)建通信連接)、public boolean sendMessage()(利用輸出管道發(fā)送信息)、public void setOutListener()(設(shè)定輸出管道的監(jiān)聽器)、public void setInListener()(設(shè)定輸入管道的監(jiān)聽器)、public void createGroup()(建立對等組)、public void joinGroup()(加入對等組)、public void leaveGroup()(離開對等組)、public boolean searchGroupWithName()(搜索對等組)、public boolean searchPeerWithName()(搜索對等點)等方法。

        2.2 聊天信息即時通信的實現(xiàn)流程

        (1)通過DiscoveryService構(gòu)建一個信息輸入管道:以 pipeSvc.createInputPipe()。(2)執(zhí)行監(jiān)聽,設(shè)定一個輸入管道Listener,設(shè)定public void pipeMsgEvent()的方法,消息到來時,該程序就會自動監(jiān)聽。(3)解析收到的信息,利用信息解析協(xié)議,通過String userName,String sendContent對消息進行解析。(4)與監(jiān)聽到的管道通知進行連接,并構(gòu)建一個信息輸出管道pipeOutService.createOutputPipe()。(5)在輸出管道中利用newChatMessage()的方法發(fā)送信息,先將信息全部封裝為new Message,再利用輸出管道將其發(fā)送出去。(6)在信息到達輸入管道時,再調(diào)用pipeMsgEvent()的方法,獲取、解析、顯示即時信息,完成這一步,即完成了一次完整的即時通信。這一流程的反復(fù)運行,即是P2P即時通信系統(tǒng)的實現(xiàn)。

        2.3 文件傳輸即時通信的實現(xiàn)

        (1)通過輸入管道捕獲一個文件列表共享請求,并將共享列表發(fā)送出去,利用public void doFileListRequest()的方法完成。(2)捕獲文件列表,并顯示可供共享的一個文件列表,利用public void doFileList()的方法完成。(3)捕獲對等體共享文件下載請求,分析其請求的文件名,并生成文件流的相應(yīng)信息,再發(fā)送給對方,利用public void doFileListDownloadRequest()的方法完成。(4)捕獲文件流的對應(yīng)信息后,解析可供下載的文件名,再存儲,public void doFileListDownload()的接口完成。(5)捕獲上傳后的文件流信息,分析文件名,再完成存儲,public void doFileListUpload()的接口完成。

        2.4 輸入管道的構(gòu)建步驟

        (1)對于對等點發(fā)送的信息,首先要構(gòu)建一個管道廣告,再發(fā)布該廣告PipeAdvertisement myadv,并設(shè)定該廣告的ID及管道信息myadv.setPipeID,myadv.setName,在設(shè)定廣告類型時,可選擇一對多的廣播型管道,也可選擇一對一的單播型管道。(2)發(fā)布廣告,讓相互通信的對等點能夠發(fā)現(xiàn)該廣告,DiscoveryService可用于該類服務(wù),設(shè)定disco.publish,disco.remotePublish的接口。(3)通過PipeService構(gòu)建一個基于該廣告的對應(yīng)輸入管道,并指定對應(yīng)的監(jiān)聽器,即可等待消息到達,并實現(xiàn)即時通信。

        2.5 GUI圖形界面的創(chuàng)建

        GUI圖形界面為整個IM系統(tǒng)的模型,是用戶登錄整個系統(tǒng)時的初始運行模塊,包含了登錄模塊、即時通信模塊、文件傳輸模塊、組管理模塊和用戶查找模塊,各模塊對應(yīng)不同的peer接口,完成整個系統(tǒng)的交互通信與顯示。

        2.6 GUI界面與通信軟件的鏈接

        通過IDE開發(fā)工具導(dǎo)入GUI界面,修改通信軟件生成構(gòu)造器。將構(gòu)造器建在源程序中,通過public VSJ Chat()代碼導(dǎo)入GUI界面,采用個性化的方法localinit()建立初始化代碼,建立發(fā)送者的名字MySenderName=""或發(fā)送群的名字MyGroupName=""。通過Beaninit()的方法調(diào)用對等機或群名,激活特定群中連接的對等機平臺,將IM系統(tǒng)加入到用戶名已知的IM會話平臺中,即可構(gòu)建信息輸入管道與輸出管道發(fā)送或接收信息。

        2.7 該軟件的技術(shù)優(yōu)勢

        該軟件的設(shè)定基于JXTA平臺本身提供的能夠無視系統(tǒng)、語言、服務(wù)器的網(wǎng)絡(luò)限制等,為多個對等點提供一個最為實用、簡捷的即時通信功能,既能夠用于聊天,也能夠用于文件傳輸。用戶信息與索引均無需借助服務(wù)器進行存儲,軟件在運行時對服務(wù)器的依賴性極低,即使服務(wù)器受到攻擊,也不會影響軟件的繼續(xù)運行。用戶在交換信息時,不需要有確定的準確地址,能夠跨過防火墻及NAT設(shè)備,實現(xiàn)暢通交流。用戶通過JXTA平臺能夠真正實現(xiàn)peer-to-peer的對等通信,對于編程語言、開發(fā)平臺及傳輸協(xié)議無依賴性,能夠接入任意數(shù)字設(shè)備,無需在指定的PC機或其他平臺上接入。用戶的即時通信無需借助網(wǎng)絡(luò),TCP/IP,藍牙,HTTP或者家庭網(wǎng)絡(luò)等都能夠即時傳送信息,借助于JXTA提供的6大協(xié)議,在相同網(wǎng)絡(luò)中的對等點可以方便地進行通信,真正實現(xiàn)了分布式的P2P通信。目前JXTA平臺自身即提供了Java語言綁定,在任意JXTA平臺運行P2P程序都能夠直接按照自身喜好配置網(wǎng)絡(luò)環(huán)境,通過該平臺強大的網(wǎng)絡(luò)環(huán)境跨越能力,穿越各種網(wǎng)絡(luò)防火墻、網(wǎng)段、服務(wù)器代理等不同的網(wǎng)絡(luò)環(huán)境,實現(xiàn)即時通信,并利用Java綁定輕松的創(chuàng)建輸入與輸出管道,實現(xiàn)即時通信[3]。

        3 實驗結(jié)果

        在JXTA平臺上運行GUI界面,彈出配置器后,根據(jù)步驟與要求設(shè)置各項參數(shù),完成初始化配置,并將配置文件存儲于.JXTA目錄中,以用于之后使用時的用戶名與密度提醒。根據(jù)局域網(wǎng)要求設(shè)置測試參數(shù),建立集合點runit.bat文件,運行該文件,即可根據(jù)代碼提供建立一個Jxta通信群,以此作為群集合點。根據(jù)對等機的數(shù)量,開始運行各個對等點,每個對等點均對應(yīng)一個runit.bat文件,逐個完成設(shè)置,即可運行,再利用之前建立的管道與廣告運行命令就可以在不同的對等點之間進行即時通信。在通信過程中,需利用Recdezvous Peer將接收到的各對等機的廣告進行緩存,以便突破內(nèi)網(wǎng)限制并發(fā)現(xiàn)所創(chuàng)建的PeerGroup。創(chuàng)建管道廣告(Pipe Advereisement),并使有固定的管道ID。利用PeerGroup與PipeAdvereisement構(gòu)建即時通信的虛擬通道。在兩臺機器中分別建立一個JxtaSocket,兩臺機器均建立代碼getInputStream()與getOutputStream(),以獲得輸入管道與輸出管道的廣告信息,并進行讀出與寫入操作,進而實現(xiàn)了兩臺不同機器的P2P即時通信。

        4 結(jié)語

        本文設(shè)計了一個使用Java語言的基于JXTA的P2P混合型即時通信軟件,通過Java語言、JXTA提供的六大協(xié)議與服務(wù),能夠自由地構(gòu)建輸入管道與輸出管道,從而完成對等組、對等點之間的廣告、消息和文件傳輸,為小型合作組的交流提供了一個更為友好的平臺。

        [參考文獻]

        [1]卿琳.基于JXTA的P2P即時通信軟件的Java實現(xiàn)[J].現(xiàn)代電子技術(shù),2010(14):136-139.

        [2]駱開華.基于JXTA平臺的P2P應(yīng)用實例的設(shè)計與實現(xiàn)[J].電腦知識與技術(shù),2009(13):3362-3363.

        [3]馮君.基于JXTA的即時通信系統(tǒng)研究與實現(xiàn)[J].濱州學(xué)院學(xué)報,2014(6):92-97.

        女同三级伦理在线观看| 精品国产av无码一道| 亚洲a∨好看av高清在线观看| 黄片免费观看视频播放| 亚洲精品成人无限看| 中文字幕日本特黄aa毛片| 亚洲黄色尤物视频| 日本一二三区在线视频观看| 人妻少妇哀求别拔出来| 亚洲国产另类精品| 深夜国产成人福利在线观看女同| 大岛优香中文av在线字幕| 手机看片自拍偷拍福利| 亚洲免费网站观看视频| 国产精品大屁股1区二区三区| 男女视频网站免费精品播放| 日韩女同视频在线网站| 国产97在线 | 中文| 精品不卡久久久久久无码人妻| 久久精品国产亚洲av专区| 久久精品国产亚洲一级二级| 国产成人一区二区三区乱| 国产办公室沙发系列高清| 高潮毛片无遮挡高清免费| 亚洲中文字幕精品久久久久久直播| 日韩不卡一区二区三区色图| 国产精品久久久久高潮| 激情97综合亚洲色婷婷五| 国产男女猛烈无遮挡免费视频网址 | 91丝袜美腿亚洲一区二区 | 亚洲成aⅴ人在线观看| 视频一区中文字幕亚洲| 一级r片内射视频播放免费| 欧洲一卡2卡三卡4卡免费网站| 亚洲熟妇大图综合色区| 国产高潮迭起久久av| 免费网站看av片| 天堂中文资源在线地址| 午夜麻豆视频在线观看| 亚洲av无码电影在线播放| 热の国产AV|