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

正文內(nèi)容

畢業(yè)論文-基于java的即時(shí)通信軟件設(shè)計(jì)與實(shí)現(xiàn)-文庫吧資料

2024-11-15 23:16本頁面
  

【正文】 系人狀態(tài)對常用聯(lián)系人進(jìn)行管理等主要考慮以下基本功能注冊并登錄服務(wù)器驗(yàn)證用戶獲得用戶列表用戶運(yùn)行客戶端程序后服務(wù)器端程序在局域網(wǎng)上運(yùn)行與其他用戶進(jìn)行點(diǎn)對點(diǎn)的實(shí)時(shí)消息通信服務(wù) 22 服務(wù)器端需求 處理用戶登錄當(dāng)用戶到達(dá)登陸界面時(shí)用戶發(fā)送賬號密碼等信息進(jìn)行分裝服務(wù)器接受到用戶發(fā)送的登陸賬號密碼驗(yàn)證用戶登錄服務(wù)器將用戶登陸發(fā)送的賬號和密碼與數(shù)據(jù)庫中已有的用戶進(jìn)行匹配如果能能找到那么就驗(yàn)證成功找不到該用戶驗(yàn)證失敗處 理用戶發(fā)送信息和處理用戶得到信息用戶可以通過對話框和自己的好友進(jìn)行文字類的交流可以發(fā)送消息同時(shí)也可以接受好友消息處理用戶退出關(guān)閉服務(wù)器等 23 客戶端需求 用戶注冊界面及結(jié)果可以將用戶的姓名性別年齡等信息分裝添加到用戶數(shù)據(jù)表中然后用戶可以根據(jù)注冊的賬號密碼進(jìn)行登錄用戶登錄界面及結(jié)果用戶進(jìn)入登陸界面填寫自己的賬號密碼然后將其提交給服務(wù)器用戶驗(yàn)證界面及結(jié)果根據(jù)服務(wù)器驗(yàn)證的結(jié)果驗(yàn)證成功用戶可以進(jìn)入登陸成功界面驗(yàn)證失敗用戶會(huì)得到一個(gè)登陸失敗界面用戶發(fā)送信息界面及結(jié)果用戶可以雙擊自己的好友然后彈出一個(gè)對話框可以和自己的 好友進(jìn)行交流用戶得到信息界面及結(jié)果當(dāng)好友給自己發(fā)送消息時(shí)用戶自己的好友界面端好友頭像閃動(dòng)然后點(diǎn)擊好友頭像上就可以接受到好友的消息 24 對于發(fā)送的消息的一些協(xié)議需求 發(fā)送的消息必須至少使用一種消息格式格式必須包含一個(gè)讓接收者可以回消息的地址發(fā)信者和即時(shí)收件箱的標(biāo)識允許對信息有效負(fù)載的編碼和鑒別非ASCIIIP 地址客戶的及然后返回用戶登錄成功的標(biāo)志 第二步根據(jù)用戶存儲(chǔ)在服務(wù)器上的好友列表服務(wù)器將用戶在線的相關(guān)信息發(fā)送給也同時(shí)在線的好友的 PC機(jī)這些信息包括在線狀態(tài) IP地址等好友的客戶端收到此信息后將 第三步是服務(wù)器把用戶存儲(chǔ)在服務(wù)器上的好友列表及相關(guān)信息回送到他的客戶端機(jī)這些信 息包括也在線狀態(tài) IP 地址等信息 圖 2 用戶體驗(yàn)流程圖 通訊方式 1 在線直接通訊 如果用戶想與他的在線好友用戶聊天他將直接通過服務(wù)器發(fā)送過來的用戶的 IP地址 TCP端口號等信息直接向用戶的 PC機(jī)發(fā)出聊天信息用戶的客戶端軟件收到后顯示在屏幕上然后用戶再直接回復(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ù)即用戶和用戶的即時(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ù)庫等 圖 3 服務(wù)器端功能結(jié)構(gòu)圖 客戶端 客戶端要完用戶登錄通信交流這些功能的含義如下 用戶登錄客戶端與服務(wù)器端建立通信信道向服務(wù)器端發(fā)送信息完成用戶登錄 通信交流客戶端 可完成的信息的編輯發(fā)送和接收等功能該即時(shí)聊天工具按如下過程完成通信客戶向服務(wù)器告知服務(wù)器該客戶監(jiān)聽某主題客戶之后向服務(wù)器發(fā)送消息服務(wù)器再把消息發(fā)送給所有監(jiān)聽此主題的客戶 圖 4 客戶端功能模塊圖 第四章 數(shù)據(jù)庫概要設(shè)計(jì) 41 系統(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ì)說明 42 用戶表 用戶表主要是記錄每個(gè)用戶自己的信息包括自己的號昵稱密碼簽名性別生日在線頭像離線頭像消息頭像等這些字段其中 num 和 sex 為數(shù)字類型namepassdesc 為字符串類型而在線頭像離線頭像消息頭像是大數(shù)據(jù)類型生日是日期類型主鍵是 num 主鍵每 條記錄應(yīng)當(dāng)具備惟一性表 1 標(biāo)識 字段 類型 精度 是否主鍵 是否外鍵 編號 num number 10 是 否 昵稱 name varchar2 20 否 否 密碼 pass varchar2 20 否 否 簽名 desc varchar2 100 否 否 性別 sex number 1 否 否 生日 birthday date 否 否 在線頭像 olpic blob 否 否 離線頭像 ofpic blob 否 否 消息頭像 mespic blob 否 否 43 好友表 friends 好友表主要反應(yīng)的是該好友和好友之間的關(guān)系 friidnumfrinum 都是數(shù)字類型的其中 friid是主鍵 num是外鍵外鍵表示了兩個(gè)關(guān)系之間的聯(lián)系以另一個(gè)關(guān)系的外鍵作主關(guān)鍵字的表被稱為主表具有此外鍵的表被稱為主表的從表外鍵又稱作外關(guān)鍵字主鍵與外鍵用于區(qū)分不同的記錄便于查詢外鍵又稱作外關(guān)鍵字表 標(biāo)識 字段 類型 精度 是否主鍵 是否外鍵 功能 ID Friid number 10 是 否 編號 num number 10 否 是 好友編號 Frinum number 10 否 是 44 在線 狀態(tài)表 logtype 在線狀態(tài)表主要是反應(yīng)用戶的登陸狀態(tài)的表 Typeid 是數(shù)字類型typenametypedesc 是字符串類型其中初始化數(shù)據(jù)時(shí) 10 代表離線 11代表隱身 12代表在線如表 3 表 標(biāo)識 字段 類型 精度 是否主鍵 是否外鍵 狀態(tài) ID typeid number 2 是 否 狀態(tài)名稱 typename varchar2 10 否 否 狀態(tài)描述 typedesc varchar2 100 否 否 45 登陸表 登陸表主要是將登陸的用戶信息反映到服務(wù)器端服務(wù)器端顯示每個(gè)登陸的用戶信息其中 numtypeid是字符類型的 logip是字符串類型的 logtime是日期類型的而且 num 即時(shí)這張表的主鍵也是這張表的外鍵同時(shí) typeid 也是這張表的外鍵如表 4 表 標(biāo)識 字段 類型 精度 是否主鍵 是否外鍵 編號 num number 10 是 是 狀態(tài) ID typeid number 2 是 登陸 IP logip varchar2 15 登陸時(shí)間 logtime date 46 離線信息表 離線表主要是方便用戶不在線時(shí)將離線信息存儲(chǔ)在這個(gè)表中當(dāng)用戶登錄時(shí)將信息顯示給用戶其 中 ID 是 number 類型的 fromuseridtouseridmessage是字符串類型的同時(shí)編號 ID 是這張表的主鍵如表 5 表 5 離線信息表 標(biāo)識 字段 類型 精度 是否主鍵 是否外鍵 編號 Id number 10 是 用戶賬號 fromuserid varchar2 10 好友賬號 touserid varchar2 10 留言信息 message varchar2 100 第五章 詳細(xì)設(shè)計(jì) 51 服務(wù)器端的設(shè)計(jì)與實(shí)現(xiàn) CS 模式下的系統(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)線程 圖 6 服務(wù)器端界面 當(dāng)服務(wù)器打開時(shí)會(huì)同時(shí)監(jiān)聽登陸線程 LoginListener 類監(jiān)聽消息線程MesListener 類這三個(gè)線程 登陸線程 LoginListener 類主要是負(fù)責(zé)服務(wù)器的登陸顯示發(fā)送給登陸用戶好友列表發(fā)送給登陸用戶其在線好友通知上線信息 wingetDao addLoginUser lm winsetTmodel wingetDao getLoginModel wingetTab setModel wingetTmodel 發(fā)送給登陸用戶好友列表的主要代碼為 ArrayList friList wingetDao getFriendsList lmgetnum SendModelsendFriList lm friList 發(fā)送給登陸用戶留言 MesModel mm wingetDao getmesModelByID lmgetnum if mm null SendModelsendMes mm lmgetip FinalFileCLI_MES_PORT wingetDao deleteMes lmgetnum 52 用戶注冊模塊 當(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 nameString passString descint sexString birthday String sql insert into user values sq_usernextval namepassdescsexto_date birthday yyyymmdd nullnullnull dbutilexecuteDML sql 53 登陸模塊 型圖 當(dāng)用戶使用賬號和密碼進(jìn)行登錄這時(shí)候有一個(gè)登錄線程將用戶發(fā)過來的用戶信息和后臺(tái)數(shù)據(jù)庫里的用戶信息進(jìn)行比對如果用戶的賬號和密碼與之完全匹配則用戶成功登錄并且返回給用戶登錄賬號的好友列表好友資料好友狀態(tài)如果不匹配服務(wù)器則告知登陸的用戶登錄失敗用戶登錄活動(dòng)圖 8 圖 8 登陸模型圖 證 利用 JFrame 類寫一個(gè)登陸界面類 ClientFrame 在登陸界面類給所有的按鈕添加監(jiān)聽事件類 LoginFrameHandler 點(diǎn)擊登陸進(jìn)入驗(yàn)證登陸環(huán)節(jié)將登陸界面獲取的登陸賬號密碼狀態(tài)全部用一個(gè)登陸用戶類 LoginModel 分裝起來然后寫一個(gè)方法根據(jù)獲取的賬號和密碼從數(shù)據(jù)庫中查找如果能找到那么說明有這個(gè)用戶用戶進(jìn)入登陸成功顯示好友界面這一環(huán)節(jié)如果根據(jù)賬號和密碼從數(shù)據(jù)庫中找不到該用戶那么說明密碼和賬號有問題這時(shí)提示輸入密碼和賬號有問題請關(guān)閉當(dāng)前提示請重新登陸 實(shí)現(xiàn)驗(yàn)證登陸功能方法的代碼如下 public boolean isEnter LoginModel lm String sql select num from user where num lmgetnum and pass lmgetpass dbutilsetSet dbutilexecuteQuary sql try if dbutilgetSet next return true catch SQLException e TODO Autogenerated catch block eprintStackTrac
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1