軟件工程課程設(shè)計報告-之-詳細設(shè)計報告_第1頁
軟件工程課程設(shè)計報告-之-詳細設(shè)計報告_第2頁
軟件工程課程設(shè)計報告-之-詳細設(shè)計報告_第3頁
軟件工程課程設(shè)計報告-之-詳細設(shè)計報告_第4頁
軟件工程課程設(shè)計報告-之-詳細設(shè)計報告_第5頁
已閱讀5頁,還剩43頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上詳細設(shè)計說明書1、 引言: 1、1編寫目的: 在前一階段(概要設(shè)計說明書)中,已解決了實現(xiàn)該系統(tǒng)需求的程序模塊設(shè)計問題。包括如何把該系統(tǒng)劃分成若干個模塊、決定各個模塊之間的接口、模塊之間傳遞的信息,以及數(shù)據(jù)結(jié)構(gòu)、模塊結(jié)構(gòu)的設(shè)計等。在以下的詳細設(shè)計報告中將對在本階段中對系統(tǒng)所做的所有詳細設(shè)計進行說明。在本階段中,確定應(yīng)該如何具體地實現(xiàn)所要求的系統(tǒng),從而在編碼階段可以把這個描述直接翻譯成用具體的 程序語言書寫的程序。主要的工作有:根據(jù)在需求分析說明書中所描述的數(shù)據(jù)、功能、運行、性能需求,并依照概要設(shè)計說明書所確定的處理流程、總體結(jié)構(gòu)和模塊外部設(shè)計,設(shè)計軟件系統(tǒng)的結(jié)構(gòu)設(shè)計、

2、逐個模塊的程序描述(包括各模塊的功能、性能、輸入、輸出、算法、程序邏輯、接口等等)在以下的各個階段中,用戶操作手冊將與本階段的工作緊密結(jié)合,努力作到 讓用戶易懂易學(xué)。測試報告和維護報告也將參考本說明書,檢驗本系統(tǒng)的各項性能指標,及時發(fā)現(xiàn)紕漏及時修補,一定要把功能強大、穩(wěn)定可靠、便于維護的機票預(yù)定系統(tǒng)交到用戶手中。 1、2項目背景:在本即時聊天工具項目的前一階段,也就是需求分析階段,已經(jīng)將系統(tǒng)用戶對本系統(tǒng)的需求做了詳細的闡述,這些用戶需求已經(jīng)在上一階段中對不同用戶所提出的不同功能,實現(xiàn)的各種效果做了調(diào)研工作,并在需求規(guī)格說明書中得到詳盡得敘述及闡明。本 飛Q即時聊天系統(tǒng)項目主要由兩部分形成:1、

3、客戶端;2、數(shù)據(jù)庫服務(wù)器端; 1、3文中特殊的定義和縮寫: 131定義SQL SERVER: 系統(tǒng)服務(wù)器所使用的數(shù)據(jù)庫管理系統(tǒng)(DBMS)。SQL: 一種用于訪問查詢數(shù)據(jù)庫的語言事務(wù)流:數(shù)據(jù)進入模塊后可能有多種路徑進行處理。主鍵:數(shù)據(jù)庫表中的關(guān)鍵域。值互不相同。外部主鍵:數(shù)據(jù)庫表中與其他表主鍵關(guān)聯(lián)的域。ROLLBACK: 數(shù)據(jù)庫的錯誤恢復(fù)機制。 132 縮寫系統(tǒng):若未特別指出,統(tǒng)指本機票預(yù)定系統(tǒng)。SQL: Structured Query Language(結(jié)構(gòu)化查詢語言)。ATM: Asynchronous Transfer Mode (異步傳輸模式)。 1、4參考資料:1 以下列出在概要設(shè)

4、計過程中所使用到的有關(guān)資料: 2 需求規(guī)格說明書 飛Q軟件開發(fā)小組3 概要設(shè)計說明書 飛Q軟件開發(fā)小組4 用戶操作手冊(初稿)飛Q軟件開發(fā)小組 5 軟件工程及其應(yīng)用 周蘇、王文等天津科學(xué)技術(shù)出版社 6 軟件工程 張海藩清華大學(xué)出版社 7 Computer Network A.S.TanenbaunPrentice Hall8網(wǎng)絡(luò)上的資料 文檔所采用的標準是參照軟件工程導(dǎo)論沈美明著 的“計算機軟件開發(fā)文檔編寫指南”。2.總體設(shè)計: 2、1需求概要:應(yīng)廣大用戶的要求,要求做一個性能更高更人性化的即使聊天工具,我飛Q軟件設(shè)計小組努力為大家寫一個更好的即時聊天工具。飛Q2012聊天系統(tǒng)的總目標是:在計

5、算機網(wǎng)絡(luò),數(shù)據(jù)庫和先進的開發(fā)平臺上,利用現(xiàn)有的軟件,配置一定的硬件,開發(fā)一個具有開放體系結(jié)構(gòu)的、易擴充的、易維護的、具有良好人機交互界面的飛Q2012聊天系統(tǒng),實現(xiàn)添加好友,刪除好友,相互聊天系統(tǒng),為人們聊天提供準確、精細、迅速的信息。根據(jù)可行性研究的結(jié)果和客戶的要求,分析現(xiàn)有情況及問題,采用Client/Server結(jié)構(gòu),將飛Q2012聊天系統(tǒng)劃分為兩個子系統(tǒng):客戶端子系統(tǒng),服務(wù)器端子系統(tǒng)。要求系統(tǒng)能有效、快速、安全、可靠和無誤的完成上述操作。并要求客戶機的界面要單明了,易于操作,服務(wù)器程序利于維護。 2、2 軟件結(jié)構(gòu): 各模塊之間的關(guān)系已由概要設(shè)計給出下面介紹詳細的設(shè)計 1 登陸模塊 2

6、申請模塊 3 安全模塊 4 聊天模塊 服務(wù)器端:1、申請模塊c2、登錄模塊3、添加好友模塊4、刪除好友模塊5修改好友昵稱模塊6、查找用戶模塊7、安全模塊7.1、設(shè)置密保模塊7.2、判斷是否設(shè)置密保模塊7.3、判斷密保答案是否正確模塊7.4、修改密保模塊 7.5、修改密碼模塊7.6、找回密碼8、移動好友模塊9、組操作模塊10、發(fā)送系統(tǒng)消息模塊11、更新個人信息模塊12、請求ipPort 模塊13 、心跳模塊13.1、用戶心跳接收處理模塊13.2、服務(wù)器定時檢測超時模塊13.3、服務(wù)器推拉檢測在線模塊14、添加可利用飛Q號3、程序描述:客戶端總模塊: 1 登陸模塊1 登錄過程對在飛Q登錄信息界面中

7、輸入的各項信息進行初步檢驗。若發(fā)現(xiàn)錯誤,輸入數(shù)據(jù)全部清空,以讓用戶重新輸入一次。若未發(fā)現(xiàn)錯誤,轉(zhuǎn)入主界面。其中的錯誤種類有: 1.輸入數(shù)據(jù)不匹配 帳號 數(shù)據(jù)庫沒有該帳號 密碼 與對應(yīng)賬號的密碼不匹配2 輸入數(shù)據(jù)不能為空if (賬號為空) 請輸入賬號再登陸else if (賬號長度小于6或?qū)τ?0) 請輸入正確的賬號,賬號可以位數(shù)字或Email地址。else if (密碼為空) 請輸入密碼后再登陸else 通知服務(wù)器 賬號為:xxx 密碼為:xxx的請求登陸 2申請過程 對之前沒有申請飛Q的用戶,不能登錄飛Q,而必須點擊申請,成為飛Q大家庭的一員。 點擊之后轉(zhuǎn)入申請界面 3 尋找忘記密碼過程 對

8、之前申請飛Q的用戶,如果忘記密碼,請不要擔(dān)心,點擊界面上的“忘記密碼”, 點擊之后轉(zhuǎn)入尋找密碼界面2申請模塊對在飛Q申請信息界面中輸入的各項信息進行賬號申請。若發(fā)現(xiàn)錯誤,輸入數(shù)據(jù)全部清空,以讓用戶重新輸入一次。若未發(fā)現(xiàn)錯誤,轉(zhuǎn)入賬號申請成功界面。 if (昵稱為空)請輸入昵稱else if (密碼格式錯誤(小于6或大于20))密碼必須6-20個字符! 密碼框清空,重新輸入else if (兩次密碼輸入不匹配)兩次密碼輸入不一致 密碼框清空,重新輸入else 獲取注冊信息 點擊新用戶注冊,向服務(wù)器傳輸注冊信息3 增刪改查模塊3.1 查找好友模塊對在飛Q查找好友界面中選擇查找類型(精確查找或條件查

9、找),輸入各項查找信息進行好友查找。若發(fā)現(xiàn)錯誤,輸入數(shù)據(jù)全部清空,以讓用戶重新輸入一次。若未發(fā)現(xiàn)錯誤,轉(zhuǎn)入查找結(jié)果界面。在查找結(jié)果界面中選擇要添加的好友,雙擊,查看該好友的詳細資料,點擊添加,轉(zhuǎn)入好友信息驗證界面。在好友信息界面,輸入驗證信息,完成好友的添加。Search類if (查找聯(lián)系人) if (精確查找) if (查詢條件為空)請至少填一個查詢條件 else 獲取查找信息 點擊查找把查找信息傳遞給服務(wù)器 else if (條件查找) 獲取查找信息 點擊查找把查找信息傳遞給服務(wù)器 Search_rasult類 if(點擊添加好友) if(添加好友選擇的是自己) 對不起,自己不能加自己為好

10、友! 重新選擇 else 把選擇的好友發(fā)送給服務(wù)器 else if(關(guān)閉) 放棄添加為好友 Addfriends類 if (確定添加為好友) 把選擇的好友信息發(fā)送給服務(wù)器 else if (取消) 放棄添加為好友 3.2 刪除好友模塊 找到你要刪除的對象所在的用戶組,展開,找到該用戶,右擊,點擊好友刪除,然后刷新好友列表;3.3.3 修改個人資料模塊點擊自己頭像,轉(zhuǎn)入個人資料界面,更新你所需要的信息選項;確定更新點擊確定,如果不想更新,點擊取消即可;更改頭像:點擊更換頭像,即可轉(zhuǎn)入更換頭像界面,界面中陳列了各種頭像,點擊你想要的頭像,即可顯示該頭像的不同樣式,一供你參考。思考之后確實想更換,點

11、擊確定,立刻刷新所有界面,確保頭像更換。如果不想更換,點擊取消即可。3.4 好友移動模塊找到你要移動的對象所在的用戶組,展開,找到該用戶,右擊,點擊移動,在彈出框中選擇移動的組對象,向服務(wù)器發(fā)送相應(yīng)的數(shù)據(jù),然后刷新好友列表;3.5 組操作模塊 <1> 修改找到你要修改的用戶組,右擊點擊重命名,向服務(wù)器發(fā)送該賬號的修改組信息,刷新好友列表,即可看見修改成果. <2> 刪除找到你要刪除用戶組,展開,右擊,點擊刪除分組,向服務(wù)器發(fā)送該賬號的刪除組信息,然后刷新好友列表;如果,要刪除的是默認分組“我的好友”,系統(tǒng)不提供刪除權(quán)限。 <3> 添加在好友列表中右擊,點擊添

12、加分組,輸入分組名,點擊確定,向服務(wù)器發(fā)送該賬號的組信息,不想添加,點擊取消。4 安全模塊對在飛Q安全界面中,分為“安全概述”,“常見欺詐”,“修改密碼”,“修改密?!保?lt;1> 安全概述 安全概述 概述了你當(dāng)前飛Q的安全狀況if (設(shè)置密保并且密碼等級為良好以上)安全狀況良好請繼續(xù)保持良好的習(xí)慣 可立即完成設(shè)置密碼else if (設(shè)置密保并且密碼等級為中等以下)安全狀況存在隱患請定期修改密碼立即完成設(shè)置密碼else 安全狀況危險請立刻設(shè)置密保問題 立即完成設(shè)置密保<2> 常見欺詐常見的集中欺詐方式:釣魚網(wǎng)址,視頻欺詐,中獎欺詐,冒充好友欺詐;<3> 修改密

13、碼 修改密碼之前請確保設(shè)置密保;如果沒有設(shè)置密保問題,請先設(shè)置密保問題,以確保該賬戶的安全性。如果設(shè)置了密保問題,請先輸入原密保問題,核對用戶身份。密保正確才可以修改,如果錯誤,對不起,不能修改密碼。if(三個密保問題有空) 對不起,密保問題回答不能為空! 沒填寫的須不完整else向服務(wù)器獲取對應(yīng)密保問題的答案If(回答錯誤) 提示:對不起,密保問題回答不能正確 全部清空,重新輸入 else 修改密碼 輸入舊密碼 if (輸入的舊密碼正確) if (新密碼為空) 提示:密碼不能為空else if (兩次密碼輸入不一致)提示:兩次密碼輸入不一致 else if (兩次密碼輸入一致并且不空) 向服

14、務(wù)器發(fā)送該賬號的新密碼else 提示:密碼有誤,請重新輸入 <4> 修改密保如果沒有設(shè)置密保問題,設(shè)置密保問題。如果設(shè)置了密保問題,請先輸入原密保問題,核對用戶身份。密保正確才可以修改,如果錯誤,對不起,不能修改密保。if(沒有設(shè)置密保) 選擇密保問題回答 If(選擇的密保問題重復(fù)) 提示:選擇的密保問題重復(fù) 重新選擇密保問題 Else if(修改密保時驗證密保問題為空) 提示:修改密保時驗證密保問題為空 Else 服務(wù)器發(fā)送該賬號的新密保問題和新密保問題對應(yīng)的答案 else 已經(jīng)設(shè)置設(shè)置密保向服務(wù)器獲取對應(yīng)密保問題的答案輸入密保問題答案(用戶)If(回答錯誤) 提示:對不起,密保

15、問題回答不能正確 全部清空,重新輸入 else 修改密保 選擇密保問題回答 If(選擇的密保問題重復(fù)) 提示:選擇的密保問題重復(fù) 重新選擇密保問題 Else if(修改密保時驗證密保問題為空) 提示:修改密保時驗證密保問題為空 Else 服務(wù)器發(fā)送該賬號的新密保問題和新密保問題對應(yīng)的答案 5 聊天模塊所有的聊天窗口的即時聊天信息 只要點擊發(fā)送,聊天信息會發(fā)送到服務(wù)器中信息中轉(zhuǎn)站中;在信息中轉(zhuǎn)站中判斷該發(fā)送的對象,再由服務(wù)器發(fā)送給對。服務(wù)器模塊:1、申請模塊 將用戶發(fā)送過來的申請信息寫入臨時變量對象中并存入數(shù)據(jù)庫中在數(shù)據(jù)庫中建立如下信息在main數(shù)據(jù)庫的各表中插入申請的號碼在users 數(shù)據(jù)庫中

16、建立該帳號的檔案,包括好友列表、添加好友驗證表、歷史記錄表等等2、登錄模塊接收數(shù)據(jù)并存入loginpot中判斷接收的密碼和服務(wù)器中的密碼是否相同,相同則返回登錄成功,并發(fā)送一系列信息(見下),不相同則返回登錄失敗,3、添加好友模塊1、發(fā)送添加好友請求:用戶發(fā)送添加好友請求包,服務(wù)器解析出要添加的好友,然后從數(shù)據(jù)庫中查找出該用戶的添加好友權(quán)限jugde 然后進行一下判斷:switch (judge)case 1:/假如統(tǒng)一任何人加入在雙方數(shù)據(jù)庫中分別添加對方,并且向被添加的的用戶發(fā)送的界面刷新命令break;case 2:對方需要驗證信息,通知客戶端break;case 0: 對方不允許任何人加

17、入,通知客戶端break;2、發(fā)送驗證信息:用戶發(fā)送驗證信息包,服務(wù)器解析出數(shù)據(jù),判斷要發(fā)送驗證信息的用戶是否在線If(在線)在線的話,就把驗證信息發(fā)送到該用戶客戶端上并顯示Else不在線的話,就把驗證信息存入要發(fā)送的用戶的數(shù)據(jù)庫中,等到該用戶下次登錄時候并會提示該用戶有添加好友驗證信息3、發(fā)送同意以否信息用戶發(fā)送同意與否信息包,服務(wù)器解析出數(shù)據(jù),判斷要發(fā)送同意與否信息的用戶是否在線,判斷同意與否信息是否If(同意)寫入數(shù)據(jù)庫相應(yīng) 的信息。Else不對數(shù)據(jù)庫進行操作。If(在線)在線的話,就把同意與否信息發(fā)送到該用戶客戶端,同時把此人的基本信息發(fā)送到客戶端Else不在線的話,就把同意與否信息存

18、入要發(fā)送的用戶的數(shù)據(jù)庫中,等到該用戶下次登錄時候并會提示該用戶有添加好友成功與否信息4、刪除好友模塊刪除好友模塊設(shè)計思路比較簡單,如下用戶發(fā)送刪除好友信息包,服務(wù)器解析出基本數(shù)據(jù),刪除發(fā)送請求用戶的數(shù)據(jù)庫中要刪除的好友的信息,同時在對方的數(shù)據(jù)庫中也相應(yīng)的刪除此人信息,并且將刪除成功與否信息發(fā)送回去,同時給要刪除的用戶發(fā)送刷新界面命令,當(dāng)然得先判斷該用戶是否在線If(在線)在線的話,給要刪除的用戶發(fā)送刷新界面命令,刪除點發(fā)送請求的用戶的信息Else不在線的話,不用再進行任何操作 5修改好友昵稱模塊同樣,修改好友昵稱模塊,也很簡單明了,不需要進行復(fù)雜的邏輯判斷,詳細過程如下:用戶發(fā)送修改好友昵稱信

19、息包,服務(wù)器解析成基本數(shù)據(jù),在數(shù)據(jù)庫中找到該好友的好友列表,修改該用戶要修改的好友的昵稱,然后子線程就可以終止了6、查找用戶模塊用戶發(fā)送修改好友昵稱信息包,服務(wù)器解析成基本數(shù)據(jù),首先判斷該用戶用的是什么搜索模式,If(搜索模式是精確查找模式)根據(jù)內(nèi)容構(gòu)造出SQL語句,在數(shù)據(jù)庫中查找出相應(yīng)的用戶,構(gòu)造出列表發(fā)回客戶端Else if(搜索模式是按條件查找模式)根據(jù)內(nèi)容構(gòu)造出SQL語句,在數(shù)據(jù)庫中查找出相應(yīng)的用戶,構(gòu)造出列表發(fā)回客戶端7.1、設(shè)置密保模塊用戶發(fā)送修改好友昵稱信息包,服務(wù)器解析成基本數(shù)據(jù),在數(shù)據(jù)庫中找到該用戶的的信息,將密保問題和答案寫入該用戶的數(shù)據(jù)庫中,假如已有密保問題則轉(zhuǎn)到重設(shè)密保

20、模塊 7.2、判斷是否設(shè)置密保模塊用戶發(fā)送請求后,服務(wù)器解析出數(shù)據(jù),在數(shù)據(jù)庫中找到該好友,查看該好友是否設(shè)置密保,If(設(shè)置了密保)返回密保問題Else if(沒有設(shè)置密保)發(fā)送回去沒有設(shè)置密保的標識7.3、判斷密保答案是否正確模塊用戶發(fā)送給服務(wù)器密保答案信息,服務(wù)器解析出相應(yīng)的數(shù)據(jù),從數(shù)據(jù)庫中查找該用戶的信息,得到密保問題和答案,進行判斷三個問題是否全部回答對If(三個密保問題全回答對)向該用戶客戶端發(fā)送驗證成功的消息Else(三個問題不全對或全不對)向該用戶客戶端發(fā)送驗證失敗信息7.4、修改密保模塊這里說明一下,修改密保的模塊是在驗證密保答案正確的前提下才能進入的,所以此模塊僅僅是覆蓋掉該

21、用戶的,特此聲明,呵呵,聲明有點晚了。沒有復(fù)雜邏輯判斷,思路如下:用戶發(fā)送給服務(wù)器新密保信息,服務(wù)器解析出相應(yīng)的數(shù)據(jù),從數(shù)據(jù)庫中查找該用戶,在數(shù)據(jù)庫中重寫此人的密保問題和答案,然后子線程接收。7.5、修改密碼模塊聲明如7.4所示,不再重復(fù)思路如下:用戶發(fā)送給服務(wù)器新密碼信息,服務(wù)器解析出相應(yīng)的數(shù)據(jù),從數(shù)據(jù)庫中查找該用戶,在數(shù)據(jù)庫中重寫此人的密碼,同時將新設(shè)置的密碼加入內(nèi)存中用戶密碼hashmap中,然后子線程接收。7.6、找回密碼找回密碼其實和重設(shè)密保有什么相識的地方,都是先驗證信息密保信息是否正確,然后根據(jù)正確與否做出相應(yīng)的處理用戶發(fā)送請求后,服務(wù)器解析出數(shù)據(jù),在數(shù)據(jù)庫中找到該好友,查看該好

22、友是否設(shè)置密保,If(設(shè)置了密保)返回密保問題。判斷接受的密保答案是否正確If(三個問題都回答正確)返回驗證成功信息,通知客戶端轉(zhuǎn)入重設(shè)密碼模塊Else返回驗證失敗信息Else if(沒有設(shè)置密保)發(fā)送回去沒有設(shè)置密保的標識,通知該用戶由于沒有設(shè)置密碼,通過此方法不能找回密碼。8、移動好友模塊移動好友模塊設(shè)計思路比較簡單,如下用戶發(fā)送移動好友信息包,服務(wù)器解析出基本數(shù)據(jù),在數(shù)據(jù)庫中查到該用戶的用戶列表信息,更新列表信息,在數(shù)據(jù)庫中做相應(yīng)的修改9、組操作模塊由于基本的幾個組操作有很多相似之處,所以將幾個組操作劃為一個模塊,設(shè)計思路如下:用戶發(fā)送組操作 信息包,服務(wù)器解析出基本數(shù)據(jù)和命令,判斷要進

23、行的組操作是什么操作,然后進行相應(yīng)的操作,具體設(shè)計思路如下:If(組操作命令為增加組)在users數(shù)據(jù)庫中找到此用戶的groupsList表,在此表中添加相應(yīng)的組Else if(組操作為刪除組)1、在users數(shù)據(jù)庫中找到此用戶的friendsList表,把相應(yīng)組的好友的組屬性改為 我的好友 ,即將要刪除組中的好友放到我的好友中,而不是直接將他們刪除, 2、在users數(shù)據(jù)庫中找到此用戶的groupsList表,在此表中刪除相應(yīng)的組Else if(組操作為修改組的名稱)1、在users數(shù)據(jù)庫中找到此用戶的friendsList表,把相應(yīng)組的好友的組屬性改為 要修改的組名 2、在users數(shù)據(jù)庫

24、中找到此用戶的groupsList表,在此表中刪找到相應(yīng)的組,修改此組的名稱為要修改的名稱 10、發(fā)送系統(tǒng)消息模塊發(fā)送系統(tǒng)消息模塊是由服務(wù)器直接調(diào)用的,來完成一些必須的用戶響應(yīng),此模塊發(fā)送消息的不同是由器構(gòu)造函數(shù)決定的,其構(gòu)造函數(shù)共有7種,如下:/ public sendSystemMessageThread(String qq, int status) throws SQLException 1、發(fā)送改變狀態(tài)public sendSystemMessageThread(String text) throws SQLException2、發(fā)送系統(tǒng)消息(全部人)public sendSystem

25、MessageThread(String qq, int sign, String ip_od, String t) throws SQLException3、發(fā)送上次登錄信息(登陸者)public sendSystemMessageThread(String qq, String text) throws SQLException 4、發(fā)送系統(tǒng)消息(對登錄者)public sendSystemMessageThread(String qq, systemMessage sys) throws SQLException5、發(fā)送添加好友請求信息public sendSystemMessageTh

26、read(int sign, String qq) throws SQLException6、當(dāng)在其他地方登錄時給另一個QQ發(fā)送下線通知public sendSystemMessageThread(String qq, systemMessage sys, int agree)7、給該用戶發(fā)送好友狀態(tài)改變由服務(wù)器根據(jù)不同的需要構(gòu)造不同 的發(fā)送系統(tǒng)消息線程,實現(xiàn)相應(yīng)的響應(yīng)11、更新個人信息模塊用戶發(fā)送給服務(wù)器新個人信息信息,服務(wù)器解析出相應(yīng)的數(shù)據(jù),從數(shù)據(jù)庫中查找該用戶,在數(shù)據(jù)庫中重寫已經(jīng)更改了的此人的信息12、請求ipPort 模塊此模塊是服務(wù)器中唯一和聊天相關(guān)的監(jiān)聽線程,此種設(shè)計方法極大的降低

27、了服務(wù)器的壓力,獲取ip 和聊天port 是聊天中很重要的一個環(huán)節(jié),設(shè)計思路如下:用戶發(fā)送給服務(wù)器請求另一個人的port的信息包,服務(wù)器解析出相應(yīng)的數(shù)據(jù),從內(nèi)存中查找另一個用戶的ip 和聊天 port ,判斷是否得到此人信息If(查詢到此人的在線信息)給客戶端返回找到的在線信息Else給客戶端返回沒有找到此人信息,也就是此人不在線,客戶端然后做出相應(yīng)地相應(yīng) 13、心跳模塊心跳相互協(xié)作的工作組及即時聊天領(lǐng)域發(fā)揮著詳單重要的角色,通過發(fā)送心跳報,來判斷各個部分工作是否正常,以防某個部分運作異常發(fā)現(xiàn)不了,造成嚴重錯誤。心跳包就是在客戶端和服務(wù)器間定時通知對方自己狀態(tài)的一個自己定義的命令字,按照一定的時間間隔發(fā)送,類似于心跳,所以叫做心跳包。用來判斷對方(設(shè)備,進程或其它網(wǎng)元)是否正常運行,采用定時發(fā)送簡單的通訊包,如果在指定時間段內(nèi)未收到對方響應(yīng),則判斷對方已經(jīng)離線。用于檢測TCP的異常斷開?;驹蚴欠?wù)器端不能有效的判斷客戶端是否在線,也就是說,服務(wù)器無法區(qū)分客戶端是長時間在空閑,還是已經(jīng)掉線的情況。所謂的心跳包就是客戶端定時發(fā)送簡單的信息給服務(wù)器端告訴它我還在而已。代碼就是每隔幾分鐘發(fā)送一個固定信息給服務(wù)端,服務(wù)端收到后回復(fù)一個固定信息如果服務(wù)端幾分鐘內(nèi)沒有收到客戶端信息則視客戶端斷開。比如有些通信軟件長時間不使用,要想知道它的狀態(tà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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論