版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、.基于P2P技術(shù)的局域網(wǎng)聊天工具 畢 業(yè) 論 文(設(shè) 計)題目: 基于P2P技術(shù)的局域網(wǎng)聊天工具 (英文): Chat tool of local network based on P2P technology 系 別: 計算機(jī)科學(xué)系 專 業(yè): 計算機(jī)科學(xué)與技術(shù) 姓 名: 學(xué) 號: 指導(dǎo)教師: 答辯日期: 2006.05.14 基于P2P技術(shù)的局域網(wǎng)聊天工具中文摘要現(xiàn)在流行的聊天軟件大都是在C/S模式下運(yùn)行的,一切服務(wù)都是以服務(wù)器為核心,以它的正常運(yùn)轉(zhuǎn)為前提,因此,即使是在局域網(wǎng)通訊也需要服務(wù)器的支持。為了讓在局域網(wǎng)內(nèi)的用戶能夠輕松地進(jìn)行聊天和文件共享,我們設(shè)計了一種無固定服務(wù)器純P2P的通訊
2、模型,用戶與用戶之間就靠軟件的協(xié)議進(jìn)行通訊。本文主要對這種模型的設(shè)計、原理和實現(xiàn)進(jìn)行了詳細(xì)的闡述,并且對在此基礎(chǔ)上實現(xiàn)的功能作了簡要的介紹。關(guān)鍵詞:P2P,局域網(wǎng)通訊,TCP、UDP協(xié)議,文件傳輸,五子棋游戲Chat tool of local network based on P2P technologyABSTRACTThe chat software that spreads now most are circulates under the C/S mode, the whole services are depend on the server, taking its normal
3、operation as a premise, therefore, be regarded as in the internet communication of the local network to also need the support of the server.For some one can communicate and the file share easily in the local network, we design a kind of no fixed server pure P2P model, customer and customer can "
4、;talk" easy depend on the protocols of the software.This text mainly elaborate the design,principle and realization of this kind of model in detail, and made detailed introduction to various application based on this model. Keywords: P2P, LAN,Communication, TCP、UDP, File transport,F(xiàn)iver Game目 錄
5、第一章 引言21.1簡要介紹21.2項目背景21.3特色與創(chuàng)新3第二章 可行性分析32.1技術(shù)可行性32.2國內(nèi)外研究現(xiàn)狀和發(fā)展趨勢4第三章 需求分析43.1功能需求43.1.1功能劃分43.1.2功能描述53.2數(shù)據(jù)需求63.2.1保存數(shù)據(jù)的方法和載體63.2.2數(shù)據(jù)一致性與容錯性7第四章 概要設(shè)計74.1網(wǎng)絡(luò)模型設(shè)計74.2系統(tǒng)結(jié)構(gòu)模型設(shè)計84.4功能模塊處理流程94.4.1上下線提示流程94.4.2聊天消息收發(fā)流程94.4.3群操作流程104.4.4文件收發(fā)流程114.4.5游戲操作流程114.5界面設(shè)計12總結(jié)12參考文獻(xiàn)12致謝13第一章 引言1.1簡要介紹基于P2P技術(shù)的局域網(wǎng)聊天
6、工具,我們把該軟件命名為“TopTalk”。它的主要作用是實現(xiàn)同在一個局域網(wǎng)上的每個用戶之間進(jìn)行即時通訊,該軟件還具有聊天室、文件傳輸和網(wǎng)絡(luò)對弈游戲的功能?!癟opTalk”是一個建立在純P2P模型下的聊天工具,所以完全不用額外的服務(wù)器支持就可以進(jìn)行點對點通訊,使用起來也非常方便。它采用了基于UDP網(wǎng)絡(luò)的傳輸協(xié)議進(jìn)行底層的消息傳送,在此基礎(chǔ)上用廣播消息實現(xiàn)上下線提示和聊天室功能,點對點的消息實現(xiàn)兩人之間的聊天通訊、網(wǎng)絡(luò)游戲和收發(fā)群消息的功能?!癟opTalk”同時也采用了TCP網(wǎng)絡(luò)的傳輸協(xié)議進(jìn)行文件傳輸,該功能可以同時收發(fā)多個文件并且支持?jǐn)帱c續(xù)傳。我在這個小組的主要工作是負(fù)責(zé)底層通訊的代碼設(shè)計
7、、用戶管理模塊的實現(xiàn)、五子棋游戲的實現(xiàn)和各個模塊間的接合工作。1.2項目背景現(xiàn)在的互聯(lián)網(wǎng)大多是以S(Server)/ B(Browser)或S/C(Client)結(jié)構(gòu)的應(yīng)用模式為主的,這樣的應(yīng)用必須在網(wǎng)絡(luò)內(nèi)設(shè)置一個服務(wù)器,信息通過服務(wù)器才可以傳遞。信息或是先集中上傳到服務(wù)器保存,然后再分別下載(如網(wǎng)站),或是信息按服務(wù)器上專有規(guī)則(軟件)處理后才可在網(wǎng)絡(luò)上傳遞流動(如郵件)。在以上方式下,一切服務(wù)都是以服務(wù)器為核心,以它的正常運(yùn)轉(zhuǎn)為前提。像現(xiàn)在流行的聊天軟件也都是在這種模式下為大家服務(wù)的,因此我們也必須依賴服務(wù)器的正常運(yùn)轉(zhuǎn)才能夠進(jìn)行聊天。但是隨著P2P技術(shù)的日益流行,大家都意識到點對點的通訊更
8、能夠體現(xiàn)網(wǎng)絡(luò)應(yīng)用的原始意義。特別是在局域網(wǎng)內(nèi),更加需要一種廉價、效率更高的軟件(不需要服務(wù)器支持,軟件本身就具備服務(wù)器和客戶端的功能)。我們的項目就是針對這種需求而開發(fā)的,設(shè)計思想也很簡單,就是以簡單而有效的方式構(gòu)建純P2P通訊模型,使得開發(fā)后期不需要過多考慮如何解決對等通訊的技術(shù)問題,而可以專注于如何實現(xiàn)與完善可擴(kuò)展、互操作性強(qiáng)的高層應(yīng)用。在沒有服務(wù)器支持的情況下實現(xiàn)局域網(wǎng)內(nèi)點對點的通訊功能,最直接想到的就是網(wǎng)絡(luò)聊天、文件傳輸和網(wǎng)絡(luò)游戲等應(yīng)用。1.3特色與創(chuàng)新隨著網(wǎng)絡(luò)聊天用戶群的急劇增長,在傳統(tǒng)的客戶端/服務(wù)(C/S)設(shè)計結(jié)構(gòu)模式下開發(fā)的網(wǎng)絡(luò)聊天軟件,由于必須使客戶端的數(shù)據(jù)通過服務(wù)器的轉(zhuǎn)播才
9、能發(fā)往目的地,服務(wù)器需承受巨大的負(fù)擔(dān)。雖然在這種模式下易于統(tǒng)一和管理,功能也可以比較強(qiáng)大,但是要以服務(wù)器承擔(dān)巨大的負(fù)擔(dān)為代價。本項目的創(chuàng)新點是采用基于純P2P網(wǎng)絡(luò)模型的通訊方式,不需要專門的服務(wù)器,網(wǎng)絡(luò)中所有的對等點都是服務(wù)器,并且承擔(dān)很小的服務(wù)器的功能。各用戶可以根據(jù)TopTalk運(yùn)行時收集到的用戶列表信息選擇聊天對象,大部分的功能都可以在此連接上實現(xiàn)。第二章 可行性分析2.1技術(shù)可行性我們項目的需求是可以在局域網(wǎng)內(nèi)實現(xiàn)方便快捷的通訊和資源共享,搭建一個完善的聊天環(huán)境。在局域網(wǎng)內(nèi)實現(xiàn)點對點的聊天并不是一件難事,在現(xiàn)有的網(wǎng)絡(luò)協(xié)議UDP、TCP/IP和Socket的支持下都可以輕易的實現(xiàn)通訊。而
10、重點解決的問題是如何在沒有固定服務(wù)器的環(huán)境下營造一個完整的和可知的通訊環(huán)境,局域網(wǎng)內(nèi)的每一個用戶可以知道其他用戶的上下線情況和有選擇的進(jìn)行通話。目前,在局域網(wǎng)內(nèi)有一個方法是最適合用來實現(xiàn)上下線功能的,那就是用廣播的方式,所有用戶都固定一個端口來處理廣播或UDP數(shù)據(jù),這樣就可以在這個端口上進(jìn)行底層的消息互通了。當(dāng)前,P2P技術(shù)已經(jīng)趨向成熟,它的幾個特點(沒有傳統(tǒng)的服務(wù)器概念、可擴(kuò)展性好、完全對稱)都非常切合軟件開發(fā)的思路?;谏鲜鲇嘘P(guān)技術(shù)的支持,我們利用P2P技術(shù)核心思想實現(xiàn)局域網(wǎng)通訊并開發(fā)“TopTalk”聊天工具是完全可行的。2.2國內(nèi)外研究現(xiàn)狀和發(fā)展趨勢通過對國內(nèi)外關(guān)于對等網(wǎng)絡(luò)的技術(shù)文章進(jìn)
11、行分析,利用P2P技術(shù)對網(wǎng)絡(luò)連接方式和結(jié)構(gòu)的設(shè)計研究主要是如何在互聯(lián)網(wǎng)上實現(xiàn)點對點的連接,如何充分利用互聯(lián)網(wǎng)上的各種資源,將互聯(lián)網(wǎng)從一個基于文件的網(wǎng)頁和電子郵件網(wǎng)絡(luò)轉(zhuǎn)變成一個動態(tài)的、顆粒狀的網(wǎng)絡(luò)。而在運(yùn)用P2P技術(shù)針對局域網(wǎng)不同主機(jī)之間進(jìn)行通訊的技術(shù)文章還是比較少,雖說在局域網(wǎng)實現(xiàn)點對點連接比起在互聯(lián)網(wǎng)是簡單的多,但是也不能夠忽略局域網(wǎng)每臺計算機(jī)對網(wǎng)絡(luò)資源共享的愿望,特別是在沒有服務(wù)器的情況下。不過技術(shù)是不分大小的,我們還是可以借鑒P2P技術(shù)在互聯(lián)網(wǎng)上的應(yīng)用。P2P技術(shù)的發(fā)展以及P2P與網(wǎng)格技術(shù)的結(jié)合,影響了整個計算機(jī)網(wǎng)絡(luò)的概念和人們的信息獲取模式,真正實現(xiàn)了“網(wǎng)絡(luò)就是計算機(jī),計算機(jī)就是網(wǎng)絡(luò)”
12、。 它提供了很多吸引人的特性,比如自主性(self-organization) 、負(fù)載平衡(load-balancing) 、有效性(availability) 、容錯冗余(fault tolerance) 和匿名(anonymity)等。P2P引導(dǎo)網(wǎng)絡(luò)計算模式從集中式向分布式偏移,也就是說網(wǎng)絡(luò)應(yīng)用的核心從中央服務(wù)器向網(wǎng)絡(luò)邊緣的終端設(shè)備擴(kuò)散。這使人們在Internet上的共享行為被提到了一個更高的層次,使人們以更主動深刻的方式參與到網(wǎng)絡(luò)中去。第三章 需求分析3.1功能需求3.1.1功能劃分根據(jù)該聊天工具的主要功能以及P2P模式的需求可劃分為五個模塊:用戶管理模塊、底層消息處理模塊、聊天功能模塊
13、、文件傳輸模塊、五子棋對弈游戲模塊。其中用戶管理模塊和底層消息處理模塊是整個軟件的基礎(chǔ)模塊,其他三個模塊都是在此基礎(chǔ)上添加的。3.1.2功能描述3.1.2.1用戶管理模塊功能需求這主要是因為考慮到在一臺PC機(jī)上可能會有不同的用戶登錄,所以為了實現(xiàn)這點就特別把該軟件設(shè)計成多用戶型。這樣就出現(xiàn)了用戶管理模塊,它在功能實現(xiàn)上主要是: 1 申請新用戶 2 修改用戶信息3 用戶登錄4 查找用戶面板5 查找用戶列表結(jié)點6 查看用戶信息7 創(chuàng)建新群3.1.2.2底層消息處理模塊功能需求:該模塊主要是處理通訊協(xié)議下的各種消息,包括發(fā)送消息和接收并處理消息這兩個主要的功能。在功能實現(xiàn)上,可分為以下幾個部分:1上
14、線消息處理2 在線消息處理3 下線消息處理4 通話消息處理5 文件傳輸消息處理6 群消息處理7 五子棋游戲消息處理3.1.2.3 聊天模塊功能需求聊天功能模塊是本軟件主要實現(xiàn)的功能,因此要盡可能做到方便快捷,易于使用。由于沒有固定的服務(wù)器,所有的消息都是實時的,不能夠把消息上傳到服務(wù)器保存,再等接收者上線后轉(zhuǎn)發(fā)出去。由于這種不可避免的缺陷,在功能上也不能夠像傳統(tǒng)的聊天工具那樣,在功能上需做一些改變和配合。在用戶數(shù)據(jù)方面也很容易引起不一致性問題,所以也不能夠太過依賴數(shù)據(jù)。在功能實現(xiàn)上,可分為以下幾個部分:1 按類顯示用戶列表2 信息提示3 查看聊天記錄4 收發(fā)信息3.1.2.4文件傳輸模塊功能需
15、求文件收發(fā)是資源共享的最主要渠道,收發(fā)必須是可靠的,并且能夠支持?jǐn)帱c續(xù)傳。在功能實現(xiàn)上分為:1 添加發(fā)送文件2 接收文件3 發(fā)送文件4 中止收發(fā)文件3.1.2.5五子棋對弈游戲模塊功能需求網(wǎng)絡(luò)游戲可以增加聊天工具的趣味性,而對弈游戲又是最適合的游戲模式,所以就選擇了五子棋作為游戲的娛樂功能。該游戲?qū)崿F(xiàn)起來比較簡單,主要的功能分為下面幾個部分:1 建立游戲2 狀態(tài)提示3 悔棋4 重新開始3.2數(shù)據(jù)需求3.2.1保存數(shù)據(jù)的方法和載體在軟件運(yùn)行前必須有保存數(shù)據(jù)的方法和載體,我們選用了Access數(shù)據(jù)庫為數(shù)據(jù)保存的主要載體,另外還有一些標(biāo)志性數(shù)據(jù)放在注冊表里。數(shù)據(jù)的輸入是否準(zhǔn)確是數(shù)據(jù)處理的前提,錯誤的
16、輸入會導(dǎo)致處理錯誤或者程序異常,從而影響軟件的穩(wěn)定性。用戶個人信息和聊天內(nèi)容主要是手工輸入的,而用戶的ID則由系統(tǒng)分配,用戶本身不需要知道這樣一個細(xì)節(jié)。在Access數(shù)據(jù)庫里我們需要三個表來保存聊天工具所需的主要數(shù)據(jù),這三個表是本地用戶表、用戶信息表和聊天記錄表。本地用戶表是用戶申請新用戶時保存進(jìn)去的,同時也把用戶的信息保存到用戶基本信息表。當(dāng)用戶登錄和修改都需要取出本地用戶的信息和用戶的基本信息。用戶基本信息表除了保存本地用戶的信息外,還有保存在局域網(wǎng)上不同主機(jī)申請的用戶信息,本地用戶就是靠著這些信息找到想要聊天的對象的。在聊天工具運(yùn)行的過程中,聊天的內(nèi)容是用戶想要保存下來的,以便以后可以查
17、看過去的聊天記錄。所以軟件應(yīng)該可以根據(jù)發(fā)送者和接收者的ID提取出他們的聊天記錄,并且把記錄還原成用戶可識別的聊天內(nèi)容。3.2.2數(shù)據(jù)一致性與容錯性由于用戶信息在本地是共享的,所以就不存在數(shù)據(jù)一致性問題。但是由于沒有固定服務(wù)器的支持,所以每一個用戶端都要獨(dú)立保存一份數(shù)據(jù),當(dāng)一部分用戶在線時,數(shù)據(jù)更新也只是這一部分用戶,這樣就造成數(shù)據(jù)不一致。面對這個問題,我們的聊天工具就一定能夠允許出現(xiàn)數(shù)據(jù)的不一致,并且在用戶上線后,能夠即時獲得更新。第四章 概要設(shè)計4.1網(wǎng)絡(luò)模型設(shè)計對于局域網(wǎng)的整體模型,我們采用了純P2P的連接模型,充分發(fā)揮了端對端通訊的優(yōu)勢。在本地主機(jī)上保存了局域網(wǎng)其它結(jié)點的基本信息,直接通
18、過目錄列表與其它主機(jī)通訊,這樣可以大大減少連接的開銷。設(shè)計模型圖解:Peer0To1To2To3Peer2To0To1To3Peer1To0To2To3Peer3To0To1To2基于目錄式的P2P網(wǎng)絡(luò)模型圖 5.14.2系統(tǒng)結(jié)構(gòu)模型設(shè)計以需求分析為依據(jù),參照現(xiàn)在比較流行的開發(fā)模型的特點,我們把結(jié)構(gòu)模型劃分為三層:顯示層、控制層以及數(shù)據(jù)層。顯示層主要是用戶與軟件的交互平臺,它實現(xiàn)友好的用戶界面,是用戶獲得和輸入信息的渠道。包括:申請或修改用戶信息窗口、登錄窗口、用戶面板窗口、聊天對話窗口、文件監(jiān)視器窗口、五子棋游戲窗口等??刂茖邮钦麄€軟件的靈魂,大部分的底層操作都需要經(jīng)過調(diào)用控制層的方法。包括
19、:初始化原始數(shù)據(jù)、網(wǎng)絡(luò)消息的收發(fā)、網(wǎng)絡(luò)消息的處理、用戶信息的管理、基本窗口的管理。數(shù)據(jù)層是提供了存取、拷貝、查找和序列化等方法的信息結(jié)構(gòu)體,它使得消息數(shù)據(jù)操作、數(shù)據(jù)庫操作和基本信息數(shù)據(jù)操作都變得透明化。包括:數(shù)據(jù)集對象、基本數(shù)據(jù)信息對象。4.4功能模塊處理流程4.4.1上下線提示流程用戶登錄廣播上線消息在線用戶收到上線消息收到在線消息返回在線消息更新用戶列表更新用戶列表退出廣播下線消息收到下線消息圖5.44.4.2聊天消息收發(fā)流程選擇用戶結(jié)點發(fā)送聊天消息用戶面板收到聊天消息查找用戶面板找不到找到用戶面板查找用戶結(jié)點找到用戶結(jié)點聊天窗口打開更新聊天內(nèi)容聊天窗口未打開添加到消息隊列提示有新消息丟棄
20、圖5.54.4.3群操作流程創(chuàng)建新群已經(jīng)存在創(chuàng)建成功更新群列表搜索新群廣播要搜索群的名字收到搜索群消息找不到該群找到該群收到群信息返回群信息更新群列表請求加入該群收到請求加入消息同意加入收到群消息拒絕請求同意加入消息更新群用戶列表更新群用戶列表圖5.64.4.4文件收發(fā)流程用戶結(jié)點用戶結(jié)點添加發(fā)送文件更新文件收發(fā)窗口發(fā)送文件傳輸請求收到請求消息初始化Socket接收Socket連接接收確認(rèn)信息準(zhǔn)備成功發(fā)送確認(rèn)信息確認(rèn)成功接收數(shù)據(jù)發(fā)送數(shù)據(jù)圖5.74.4.5游戲操作流程打開游戲窗口發(fā)送請求消息聊天窗口用戶結(jié)點收到游戲請求拒絕加入游戲同意加入游戲收到拒絕消息連接成功收到游戲消息走棋悔棋重新開始退出更新棋盤狀態(tài)走棋消息更新棋盤同意請求圖5.84.5界面設(shè)計用戶界面的美觀和方便與否會直接影響到用戶使用的積極性,所以我們?yōu)榻缑鎿Q上了一個免費(fèi)的皮膚來改善界面的外觀。用戶新建、修改的工作都是通過界面交互完成的,而用戶登錄后的用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- (2024版)版權(quán)許可與發(fā)行權(quán)轉(zhuǎn)讓合同
- 2(2024版)教育培訓(xùn)機(jī)構(gòu)合作合同
- 2024年居間橋梁:文化與藝術(shù)中介合同
- 2024年工程合同履行與索賠策略
- 2024年醫(yī)療器械制造企業(yè)與銷售代理商合作協(xié)議
- 2024年安置房銷售合同樣本
- 2024年國際機(jī)票代理銷售合同
- 2024年勞動合同履約承諾函
- 2024年升級版軟件開發(fā)外包協(xié)議
- 2023年中國人民大學(xué)國際文化交流學(xué)院招聘考試真題
- 紙箱廠代加工合作協(xié)議書范文
- 人工智能在醫(yī)療診斷中的應(yīng)用與發(fā)展趨勢研究
- 上海市普陀區(qū)2024-2025學(xué)年八年級上學(xué)期期中物理練習(xí)卷
- 2024年消防知識競賽考試題庫500題(含答案)
- 《9 作息有規(guī)律》教學(xué)設(shè)計-2024-2025學(xué)年道德與法治一年級上冊統(tǒng)編版
- 2024年公考時事政治知識點
- 交通運(yùn)輸企業(yè)2023安全生產(chǎn)費(fèi)用投入計劃和實施方案
- 虛擬現(xiàn)實技術(shù)智慧樹知到期末考試答案章節(jié)答案2024年山東女子學(xué)院
- 青島版五四制五年級上冊數(shù)學(xué)應(yīng)用題216道
- 第八講 發(fā)展全過程人民民主PPT習(xí)概論2023優(yōu)化版教學(xué)課件
- 稻煙輪作主要病蟲害全程綠色防控技術(shù)規(guī)程-地方標(biāo)準(zhǔn)編制說明
評論
0/150
提交評論