freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于java的即時(shí)通信軟件設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文(編輯修改稿)

2025-04-03 09:45 本頁面
 

【文章內(nèi)容簡介】 三章 系統(tǒng) 設(shè)計(jì) 軟件設(shè)計(jì)流程 因?yàn)樵撓到y(tǒng)其需求是十分明確的,所以該系統(tǒng)的開發(fā)流程采用瀑布模型進(jìn)行設(shè)計(jì),分為幾大步驟:先進(jìn)行需求分析, 再 是 系統(tǒng) 設(shè)計(jì),然后是詳細(xì)設(shè)計(jì)與編碼,其次是軟件的測試,最后是軟件的運(yùn)行和維護(hù)。在實(shí)際過程中這些步驟經(jīng)常是重疊和彼此間有信息交換,它不是一個(gè)簡單線性過程,而是包括開發(fā)步驟的多個(gè)反復(fù)。如圖 1所示。 圖 1 即時(shí)通訊系統(tǒng)開發(fā) 瀑布 圖 即時(shí)聊天系統(tǒng)的實(shí)施原理 工作方式和技術(shù)原理 第一步,用戶輸入自己的用戶名和密碼登錄服務(wù)器,服務(wù)器通過讀取用戶數(shù)據(jù)庫來驗(yàn)證用戶身份,如果驗(yàn)證通過,登記用戶的 IP地址、客戶的 姓名 及 時(shí)間 ,然后返回用戶登錄成功的標(biāo)志。 第二步,根據(jù)用戶存儲(chǔ)在服務(wù)器上的好友列表,服務(wù)器將用戶在線的相關(guān)信息發(fā)送給也同時(shí)在線的好友的 PC 機(jī),這些信息包括在線狀態(tài)、 IP 地址等,好友的客戶端收到此信息后將 其顯示在客戶端界面上 。 需求分析 系統(tǒng)設(shè)計(jì) 軟件運(yùn)行與維護(hù) 詳細(xì)設(shè)計(jì)與編碼 軟件測試 安康學(xué)院本科生畢業(yè)論文(設(shè)計(jì)) 8 用戶登陸 身份驗(yàn)證 失敗 成功 與好友聊天 關(guān)閉聊天窗口 關(guān)閉客戶端 新用戶注冊 注冊驗(yàn)證 注冊失敗 成功 失敗 登陸失敗 登陸成功 第三步是服務(wù)器把用戶存儲(chǔ)在服務(wù)器上的好友列表及相關(guān)信息回送到他的客戶端機(jī),這些信息包括也在線狀態(tài)、 IP 地址等信息。用戶應(yīng)用流程 圖如圖 2 所示。 圖 2 用戶體驗(yàn)流程圖 通訊方式 (1)在線直接通訊 如果用戶想與他的在線好友用戶聊天,他將直接通過服務(wù)器發(fā)送過來的用戶 好友 的 IP 地址、 TCP 端口號等信息,直接向用戶 好友的 PC 機(jī)發(fā)出聊天信息,用戶 好友 的客戶端軟件收到后 ,頭像閃動(dòng),雙擊彈出對話框, 顯示在屏幕上,然后用戶 好友 再直接回復(fù)到用戶的 PC 機(jī),這樣雙方的即時(shí)文字消息就不 在 服務(wù)器中轉(zhuǎn),而是直接通過網(wǎng)絡(luò)進(jìn)行點(diǎn)對點(diǎn)的通訊。 (2)在線代理通訊 用戶與用戶 好友 的點(diǎn)對點(diǎn)通訊由于防火墻、網(wǎng)絡(luò)速度等原因難以 建立或者速度很慢,服務(wù)器將會(huì)主動(dòng)提供消息中轉(zhuǎn)服務(wù),即用戶第三章 系統(tǒng) 設(shè)計(jì) 9 和用戶 好友 的即時(shí)消息全部先發(fā)送到服務(wù)器,再由服務(wù)器轉(zhuǎn)發(fā)給對方。 功能模塊劃分 服務(wù)器端 服務(wù)器端完成至少 3 大功能:建立連接、存儲(chǔ)數(shù)據(jù)和監(jiān)聽客戶。這 3 大功能的具體含義如下: (1)建立一個(gè) ServerSocket 連接,不斷偵聽是否有客戶端連接或者斷開連接。 (2)服務(wù)器端是一個(gè)信息發(fā)送中心,所有客戶端的信息都傳到服務(wù)器端,再由服務(wù)器根據(jù)要求分發(fā)出去。 (3)數(shù)據(jù)庫數(shù)據(jù)操作包括 將 用戶信息存儲(chǔ)到數(shù)據(jù)庫等。 服務(wù)器端功能結(jié)構(gòu)如圖 3。 圖 3 服務(wù)器端功能結(jié)構(gòu)圖 客戶端 客戶端要完:用戶登錄、 讀取用戶、 通信交流 這些功能 。這些功能的含義如下: (1)用戶登錄:客戶端與服務(wù)器端建立通信信道,向服務(wù)器端發(fā)送信息,完成用戶登錄。 (2)通信交流:客戶端可完成的信息的編輯、發(fā)送和接收等功能。該即時(shí)聊天工具按如下過程完成通信 , 客戶向服務(wù)器 登陸 ,告知服務(wù)器該客戶監(jiān)聽某主題;客戶 登陸 之后,向服務(wù)器發(fā)送消息;服務(wù)器再把消息發(fā)送給所有監(jiān)聽此主題的客戶。 客戶端功能模塊結(jié)構(gòu)如圖 4 服務(wù)器端 建立連接 存儲(chǔ)數(shù)據(jù) 監(jiān)聽客戶 安康學(xué)院本科生畢業(yè)論文(設(shè)計(jì)) 10 圖 4 客戶端功能模塊圖 客戶端 用戶交流 讀取用戶 用戶登陸 用戶登陸驗(yàn)證 用戶注冊驗(yàn)證 用戶注冊 第四章 數(shù)據(jù)庫概要設(shè)計(jì) 11 第四章 數(shù)據(jù)庫概要設(shè)計(jì) 系統(tǒng)實(shí)體及實(shí)體關(guān)系圖 經(jīng)過本人對系統(tǒng)數(shù)據(jù)信息的分析,設(shè)計(jì)了有用戶實(shí)體、好友列表實(shí)體兩個(gè)實(shí)體。用戶實(shí)體屬性包括了用戶編號、昵稱、密碼、簽名、性別、生日、在線頭像、離線頭像、消息頭像等;好友列表實(shí)體包括了功能 ID、用戶編號、好友編號等屬性。用戶好友實(shí)體和好友列表實(shí)體 ER 圖如圖 5。 圖 5 實(shí)體關(guān)系圖 根據(jù)實(shí)體關(guān)之間系,數(shù)據(jù)庫設(shè)計(jì)了用戶表 (登錄用戶 )、好友表(friends),另外為了方便編寫用戶的登陸狀態(tài)和直觀的表示服務(wù)器端,又添加了在線狀態(tài)表 (logtype)和登陸表。用的數(shù)據(jù)庫是 oracle10,對數(shù)據(jù)庫表進(jìn)行操作的軟件工具是 PLSQL Developer,下面將對這五張表進(jìn)行詳細(xì)說明。 好友 用戶 qq 編號 編號 消息頭像 生日 在線頭像 離線頭像 密碼 昵稱 簽名 性別 好友編號 自己編號 擁有 1 n 安康學(xué)院本科生畢業(yè)論文(設(shè)計(jì)) 12 用戶表 用戶表主要是記錄每個(gè)用戶自己的信息,包括自己的 qq 號、昵稱、密碼、簽名、性別、生日、在線頭像、離線頭像、消息頭像等這些字段。其中 qqnum 和 qqsex 為數(shù)字類型, qqname、 qqpass、qqdesc 為字符串類型,而在線頭像、離線頭 像、消息頭像是大數(shù)據(jù)類型,生日是日期類型,主鍵是 qqnum。 主鍵 為了標(biāo)識(shí)一條記錄的唯一性,保證 每條記錄應(yīng)當(dāng)具備惟一性 ,一張表里只有一個(gè)主鍵,而且主鍵不能為空,如表 1。 表 1 用戶信息表 標(biāo)識(shí) 字段 類型 精度 是否主鍵 是否外鍵 編號 qqnum number 10 是 否 昵稱 qqname varchar2 20 否 否 密碼 qqpass varchar2 20 否 否 簽名 qqdesc varchar2 100 否 否 性別 qqsex number 1 否 否 生日 qqbirthday date 否 否 在線頭像 qqolpic blob 否 否 離線頭像 qqofpic blob 否 否 消息頭像 qqmespic blob 否 否 好友表 (friends) 好友表主要反應(yīng)的是該 qq 好友和好友之間的關(guān)系。 friid、qqnum、 frinum 都是數(shù)字類型的。其中 friid 是主鍵, qqnum 是外鍵。外鍵表示了兩個(gè)關(guān)系之間的聯(lián)系 。 以另一個(gè)關(guān)系的外鍵作主關(guān)鍵字的表被稱為主表,具有此外鍵的表被稱為主表的從表。外鍵又稱作外關(guān)鍵字。主鍵與外鍵用于區(qū)分不同的記錄便于查詢 。 外鍵又稱作外關(guān)鍵字 。一張表中可以有多個(gè)外鍵,但這些外鍵必須是其它表的主鍵,如表 2。 第四章 數(shù)據(jù)庫概要設(shè)計(jì) 13 表 2 好友表 標(biāo)識(shí) 字段 類型 精度 是否主鍵 是否外鍵 功能 ID Friid number 10 是 否 編號 Qqnum number 10 否 是 好友編號 Frinum number 10 否 是 在線狀態(tài)表 (logtype) 在線狀態(tài)表主要是反應(yīng)用戶的登陸狀態(tài)的表。 Typeid 是數(shù)字類型, typename、 typedesc 是字符串類型。其中初始化數(shù)據(jù)時(shí), 10 代表離線, 11 代表隱身, 12 代 表在線,如表 3。 表 3 在線狀態(tài)表 標(biāo)識(shí) 字段 類型 精度 是否主鍵 是否外鍵 狀態(tài) ID typeid number 2 是 否 狀態(tài)名稱 typename varchar2 10 否 否 狀態(tài)描述 typedesc varchar2 100 否 否 登陸表 登陸表主要是將登陸的用戶信息反映到服務(wù)器端,服務(wù)器端顯示每個(gè)登陸的用戶信息。其中 qqnum、 typeid 是字符類型的, logip是字符串類型的, logtime 是日期類型的,而且 qqnum 即時(shí)這張表的主鍵,也是這張表的外鍵,同時(shí) typeid 也是這張表的外鍵,如表 4。 表 4 服務(wù)器端登陸表 標(biāo)識(shí) 字段 類型 精度 是否主鍵 是否外鍵 編號 qqnum number 10 是 是 狀態(tài) ID typeid number 2 是 登陸 IP logip varchar2 15 登陸時(shí)間 logtime date 離線信息表 離線表主要是方便用戶不在線時(shí),將離線信息存儲(chǔ)在這個(gè)表中,當(dāng)用戶登錄時(shí),將信息顯示給用戶。其中 ID 是 number 類型的,fromuserid、 touserid、 message 是字符串類型的, 同時(shí)編號 ID 是這張表的主鍵。如表 5。 安康學(xué)院本科生畢業(yè)論文(設(shè)計(jì)) 14 表 5 離線信息表 標(biāo)識(shí) 字段 類型 精度 是否主鍵 是否外鍵 編號 Id number 10 是 用戶賬號 fromuserid varchar2 10 好友賬號 touserid varchar2 10 留言信息 message varchar2 100 第五章 詳細(xì)設(shè)計(jì) 15 第五章 詳細(xì)設(shè)計(jì) 服務(wù)器端的設(shè)計(jì)與實(shí)現(xiàn) C/S 模式下的系統(tǒng)開發(fā),很顯然服務(wù)器端程序的設(shè)計(jì)是非常重要的。下面就服務(wù)器端的相關(guān)程序模塊進(jìn)行設(shè)計(jì),并一定程度上實(shí)現(xiàn)了相關(guān)功能。使用 SeverSocket s=newServerSocket(端口 )語句在端口創(chuàng)建套接口;使用 new ServerThread(socket)語句創(chuàng)建新的線程。服務(wù)器類調(diào)用 ServerThread 類,而每個(gè) ServerThread 實(shí)體就是一個(gè)獨(dú)立的線程,剛好對應(yīng)于客戶端的連接請求響應(yīng)線程。 每一個(gè)客戶登陸,如果驗(yàn)證成功,將會(huì)顯示在服務(wù)器端 。 為了更好的顯示后臺(tái)服務(wù)器端,設(shè)計(jì)了相應(yīng)的服務(wù)器端圖形界面,如圖 6。 圖 6 服務(wù)器端界面 當(dāng)服務(wù)器打開時(shí)會(huì)同時(shí) 監(jiān)聽登陸線程 (LoginListener)類、 監(jiān)聽消息線程 (MesListener)類這三個(gè)線程。 登陸線程 (LoginListener)類主要是負(fù)責(zé) 服務(wù)器的 用戶 登陸顯示 、發(fā)送給登陸用戶好友列表 、 發(fā)送給登陸用戶其在線好友,通知上線信息 等。 在服務(wù)器的登錄表注冊登錄 ,并更新登陸顯示 的主要代碼為: ().addLoginUser(lm)。 (().getLoginModel())。 ().setModel(())。 發(fā)送給登陸用戶好友列表 的主要代碼為: 安康學(xué)院本科生畢業(yè)論文(設(shè)計(jì)) 16 ArrayListFriendModel friList=().getFriendsList(())。 (lm, friList)。 發(fā)送給登陸用戶留言 MesModel mm=().getmesModelByID(())。 if(mm!=null){ (mm, (), )。 ().deleteMes(())。 } 用戶注冊模塊 當(dāng)用戶使用 Client 界面,點(diǎn)擊注冊賬號,用戶要把個(gè)人資料填寫完,此時(shí)有一個(gè)注冊類線程開啟,同時(shí)驗(yàn)證用戶填寫的個(gè)人資料是否合法。如果合法,將注冊的信息插入到用戶表用戶中,同時(shí)還會(huì)將申請的賬號返回給用戶,用戶可以通過這個(gè)賬號和自己注冊的密碼進(jìn)行登錄。如果不合法,系統(tǒng)拒絕申請,返回到登陸界面。注冊模塊圖如圖 7。 圖 7 用戶注冊模塊圖 注冊好友的方法 如下所示。 public void LoginId( String qqname,String qqpass,String qqdesc,int qqsex,String qqbirthday){ String sql=insert into qquser values(, 39。+qqname+39。,39。+qqpass+39。,39。+qqdesc+39。,39。+qqsex+39。,+to用戶注冊 注冊不成功界面 注冊規(guī)范 返回給用戶一個(gè)編號 用戶注冊驗(yàn)證 注冊不規(guī)范 第五章 詳細(xì)設(shè)計(jì) 17 _date( 39。+qqbirthday+ 39。 ,39。yyyymmdd39。),null,null,null)。 (sql)。 } 登陸模塊 登錄模型圖 當(dāng)用戶使用賬號和密碼進(jìn)行登錄,這時(shí)候有一個(gè)登錄線程將用戶發(fā)過來的用戶信息和后臺(tái)數(shù)據(jù)庫里的用戶信息進(jìn)行比對。如果用戶的賬號和密碼與之完全匹配,則用戶成功登錄,并且返回給用戶登錄賬號的好友列表、好友資料、好友狀態(tài)。如果不匹配,服務(wù)器則告知登陸的用戶登錄失敗。用戶登錄活動(dòng)圖 8。 圖 8 登陸模型圖 登錄驗(yàn)證 利用 JFrame 類寫一個(gè)登陸界 面類( Clie
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1