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

正文內(nèi)容

畢業(yè)論文-基于java的即時(shí)通信軟件設(shè)計(jì)與實(shí)現(xiàn)(存儲(chǔ)版)

  

【正文】 系人狀態(tài)對(duì)常用聯(lián)系人進(jìn)行管理等主要考慮以下基本功能注冊(cè)并登錄服務(wù)器驗(yàn)證用戶(hù)獲得用戶(hù)列表用戶(hù)運(yùn)行客戶(hù)端程序后服務(wù)器端程序在局域網(wǎng)上運(yùn)行與其他用戶(hù)進(jìn)行點(diǎn)對(duì)點(diǎn)的實(shí)時(shí)消息通信服務(wù) 22 服務(wù)器端需求 處理用戶(hù)登錄當(dāng)用戶(hù)到達(dá)登陸界面時(shí)用戶(hù)發(fā)送賬號(hào)密碼等信息進(jìn)行分裝服務(wù)器接受到用戶(hù)發(fā)送的登陸賬號(hào)密碼驗(yàn)證用戶(hù)登錄服務(wù)器將用戶(hù)登陸發(fā)送的賬號(hào)和密碼與數(shù)據(jù)庫(kù)中已有的用戶(hù)進(jìn)行匹配如果能能找到那么就驗(yàn)證成功找不到該用戶(hù)驗(yàn)證失敗處 理用戶(hù)發(fā)送信息和處理用戶(hù)得到信息用戶(hù)可以通過(guò)對(duì)話(huà)框和自己的好友進(jìn)行文字類(lèi)的交流可以發(fā)送消息同時(shí)也可以接受好友消息處理用戶(hù)退出關(guān)閉服務(wù)器等 23 客戶(hù)端需求 用戶(hù)注冊(cè)界面及結(jié)果可以將用戶(hù)的姓名性別年齡等信息分裝添加到用戶(hù)數(shù)據(jù)表中然后用戶(hù)可以根據(jù)注冊(cè)的賬號(hào)密碼進(jìn)行登錄用戶(hù)登錄界面及結(jié)果用戶(hù)進(jìn)入登陸界面填寫(xiě)自己的賬號(hào)密碼然后將其提交給服務(wù)器用戶(hù)驗(yàn)證界面及結(jié)果根據(jù)服務(wù)器驗(yàn)證的結(jié)果驗(yàn)證成功用戶(hù)可以進(jìn)入登陸成功界面驗(yàn)證失敗用戶(hù)會(huì)得到一個(gè)登陸失敗界面用戶(hù)發(fā)送信息界面及結(jié)果用戶(hù)可以雙擊自己的好友然后彈出一個(gè)對(duì)話(huà)框可以和自己的 好友進(jìn)行交流用戶(hù)得到信息界面及結(jié)果當(dāng)好友給自己發(fā)送消息時(shí)用戶(hù)自己的好友界面端好友頭像閃動(dòng)然后點(diǎn)擊好友頭像上就可以接受到好友的消息 24 對(duì)于發(fā)送的消息的一些協(xié)議需求 發(fā)送的消息必須至少使用一種消息格式格式必須包含一個(gè)讓接收者可以回消息的地址發(fā)信者和即時(shí)收件箱的標(biāo)識(shí)允許對(duì)信息有效負(fù)載的編碼和鑒別非ASCIIIP 地址客戶(hù)的及然后返回用戶(hù)登錄成功的標(biāo)志 第二步根據(jù)用戶(hù)存儲(chǔ)在服務(wù)器上的好友列表服務(wù)器將用戶(hù)在線的相關(guān)信息發(fā)送給也同時(shí)在線的好友的 PC機(jī)這些信息包括在線狀態(tài) IP地址等好友的客戶(hù)端收到此信息后將 第三步是服務(wù)器把用戶(hù)存儲(chǔ)在服務(wù)器上的好友列表及相關(guān)信息回送到他的客戶(hù)端機(jī)這些信 息包括也在線狀態(tài) IP 地址等信息 圖 2 用戶(hù)體驗(yàn)流程圖 通訊方式 1 在線直接通訊 如果用戶(hù)想與他的在線好友用戶(hù)聊天他將直接通過(guò)服務(wù)器發(fā)送過(guò)來(lái)的用戶(hù)的 IP地址 TCP端口號(hào)等信息直接向用戶(hù)的 PC機(jī)發(fā)出聊天信息用戶(hù)的客戶(hù)端軟件收到后顯示在屏幕上然后用戶(hù)再直接回復(fù)到用戶(hù)的 PC 機(jī)這樣雙方的即時(shí)文字消息就不服務(wù)器中轉(zhuǎn)而是直接通過(guò)網(wǎng)絡(luò)進(jìn)行點(diǎn)對(duì)點(diǎn)的通訊 2 在線代理通訊 用戶(hù)與用戶(hù)的點(diǎn)對(duì)點(diǎn)通訊由于防火墻網(wǎng)絡(luò)速度等原因難以建立或者速度很慢服務(wù)器將會(huì)主動(dòng)提供消息中轉(zhuǎn)服務(wù)即用戶(hù)和用戶(hù)的即時(shí)消息全部先發(fā)送到服務(wù)器再由服 務(wù)器轉(zhuǎn)發(fā)給對(duì)方 功能模塊劃分 服務(wù)器端 服務(wù)器端完成至少 3大功能建立連接存儲(chǔ)數(shù)據(jù)和監(jiān)聽(tīng)客戶(hù)這 3大功能的具體含義如下 1 建立一個(gè) ServerSocket 連接不斷偵聽(tīng)是否有客戶(hù)端連接或者斷開(kāi)連接 2 服務(wù)器端是一個(gè)信息發(fā)送中心所有客戶(hù)端的信息都傳到服務(wù)器端再由服務(wù)器根據(jù)要求分發(fā)出去 3 數(shù)據(jù)庫(kù)數(shù)據(jù)操作包括用戶(hù)信息存儲(chǔ)到數(shù)據(jù)庫(kù)等 圖 3 服務(wù)器端功能結(jié)構(gòu)圖 客戶(hù)端 客戶(hù)端要完用戶(hù)登錄通信交流這些功能的含義如下 用戶(hù)登錄客戶(hù)端與服務(wù)器端建立通信信道向服務(wù)器端發(fā)送信息完成用戶(hù)登錄 通信交流客戶(hù)端 可完成的信息的編輯發(fā)送和接收等功能該即時(shí)聊天工具按如下過(guò)程完成通信客戶(hù)向服務(wù)器告知服務(wù)器該客戶(hù)監(jiān)聽(tīng)某主題客戶(hù)之后向服務(wù)器發(fā)送消息服務(wù)器再把消息發(fā)送給所有監(jiān)聽(tīng)此主題的客戶(hù) 圖 4 客戶(hù)端功能模塊圖 第四章 數(shù)據(jù)庫(kù)概要設(shè)計(jì) 41 系統(tǒng)實(shí)體及實(shí)體關(guān)系圖 經(jīng)過(guò)本人對(duì)系統(tǒng)數(shù)據(jù)信息的分析設(shè)計(jì)了有用戶(hù)實(shí)體好友列表實(shí)體兩個(gè)實(shí)體用戶(hù)實(shí)體屬性包括了用戶(hù)編號(hào)昵稱(chēng)密碼簽名性別生日在線頭像離線頭像消息頭像等好友列表實(shí)體包括了功能 ID 用戶(hù)編號(hào)好友編號(hào)等屬性用戶(hù)好友實(shí)體和好友列表實(shí)體 ER 圖如圖 5 圖 5 實(shí)體關(guān)系圖 根據(jù)實(shí)體關(guān)之間系數(shù)據(jù) 庫(kù)設(shè)計(jì)了用戶(hù)表 登錄用戶(hù) 好友表 friends 另外為了方便編寫(xiě)用戶(hù)的登陸狀態(tài)和直觀的表示服務(wù)器端又添加了在線狀態(tài)表 logtype 和登陸表用的數(shù)據(jù)庫(kù)是 oracle10 對(duì)數(shù)據(jù)庫(kù)表進(jìn)行操作的軟件工具是PLSQL Developer 下面將對(duì)這五張表進(jìn)行詳細(xì)說(shuō)明 42 用戶(hù)表 用戶(hù)表主要是記錄每個(gè)用戶(hù)自己的信息包括自己的號(hào)昵稱(chēng)密碼簽名性別生日在線頭像離線頭像消息頭像等這些字段其中 num 和 sex 為數(shù)字類(lèi)型namepassdesc 為字符串類(lèi)型而在線頭像離線頭像消息頭像是大數(shù)據(jù)類(lèi)型生日是日期類(lèi)型主鍵是 num 主鍵每 條記錄應(yīng)當(dāng)具備惟一性表 1 標(biāo)識(shí) 字段 類(lèi)型 精度 是否主鍵 是否外鍵 編號(hào) num number 10 是 否 昵稱(chēng) 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ù)字類(lèi)型的其中 friid是主鍵 num是外鍵外鍵表示了兩個(gè)關(guān)系之間的聯(lián)系以另一個(gè)關(guān)系的外鍵作主關(guān)鍵字的表被稱(chēng)為主表具有此外鍵的表被稱(chēng)為主表的從表外鍵又稱(chēng)作外關(guān)鍵字主鍵與外鍵用于區(qū)分不同的記錄便于查詢(xún)外鍵又稱(chēng)作外關(guān)鍵字表 標(biāo)識(shí) 字段 類(lèi)型 精度 是否主鍵 是否外鍵 功能 ID Friid number 10 是 否 編號(hào) num number 10 否 是 好友編號(hào) Frinum number 10 否 是 44 在線 狀態(tài)表 logtype 在線狀態(tài)表主要是反應(yīng)用戶(hù)的登陸狀態(tài)的表 Typeid 是數(shù)字類(lèi)型typenametypedesc 是字符串類(lèi)型其中初始化數(shù)據(jù)時(shí) 10 代表離線 11代表隱身 12代表在線如表 3 表 標(biāo)識(shí) 字段 類(lèi)型 精度 是否主鍵 是否外鍵 狀態(tài) ID typeid number 2 是 否 狀態(tài)名稱(chēng) typename varchar2 10 否 否 狀態(tài)描述 typedesc varchar2 100 否 否 45 登陸表 登陸表主要是將登陸的用戶(hù)信息反映到服務(wù)器端服務(wù)器端顯示每個(gè)登陸的用戶(hù)信息其中 numtypeid是字符類(lèi)型的 logip是字符串類(lèi)型的 logtime是日期類(lèi)型的而且 num 即時(shí)這張表的主鍵也是這張表的外鍵同時(shí) typeid 也是這張表的外鍵如表 4 表 標(biāo)識(shí) 字段 類(lèi)型 精度 是否主鍵 是否外鍵 編號(hào) num number 10 是 是 狀態(tài) ID typeid number 2 是 登陸 IP logip varchar2 15 登陸時(shí)間 logtime date 46 離線信息表 離線表主要是方便用戶(hù)不在線時(shí)將離線信息存儲(chǔ)在這個(gè)表中當(dāng)用戶(hù)登錄時(shí)將信息顯示給用戶(hù)其 中 ID 是 number 類(lèi)型的 fromuseridtouseridmessage是字符串類(lèi)型的同時(shí)編號(hào) ID 是這張表的主鍵如表 5 表 5 離線信息表 標(biāo)識(shí) 字段 類(lèi)型 精度 是否主鍵 是否外鍵 編號(hào) Id number 10 是 用戶(hù)賬號(hào) fromuserid varchar2 10 好友賬號(hào) touserid varchar2 10 留言信息 message varchar2 100 第五章 詳細(xì)設(shè)計(jì) 51 服務(wù)器端的設(shè)計(jì)與實(shí)現(xiàn) CS 模式下的系統(tǒng)開(kāi)發(fā)很顯然服務(wù)器端程序的設(shè)計(jì)是非常重要的下 面就服務(wù)器端的相關(guān)程序模塊進(jìn)行設(shè)計(jì)并一定程度上實(shí)現(xiàn)了相關(guān)功能使用 SeverSocket s newServerSocket 語(yǔ)句在端口創(chuàng)建套接口使用 new ServerThread socket 語(yǔ)句創(chuàng)建新的線程服務(wù)器類(lèi)調(diào)用 ServerThread類(lèi)而每個(gè) ServerThread實(shí)體就是一個(gè)獨(dú)立的線程剛好對(duì)應(yīng)于客戶(hù)端的連接請(qǐng)求響應(yīng)線程 圖 6 服務(wù)器端界面 當(dāng)服務(wù)器打開(kāi)時(shí)會(huì)同時(shí)監(jiān)聽(tīng)登陸線程 LoginListener 類(lèi)監(jiān)聽(tīng)消息線程MesListener 類(lèi)這三個(gè)線程 登陸線程 LoginListener 類(lèi)主要是負(fù)責(zé)服務(wù)器的登陸顯示發(fā)送給登陸用戶(hù)好友列表發(fā)送給登陸用戶(hù)其在線好友通知上線信息 wingetDao addLoginUser lm winsetTmodel wingetDao getLoginModel wingetTab setModel wingetTmodel 發(fā)送給登陸用戶(hù)好友列表的主要代碼為 ArrayList friList wingetDao getFriendsList lmgetnum SendModelsendFriList lm friList 發(fā)送給登陸用戶(hù)留言 MesModel mm wingetDao getmesModelByID lmgetnum if mm null SendModelsendMes mm lmgetip FinalFileCLI_MES_PORT wingetDao deleteMes lmgetnum 52 用戶(hù)注冊(cè)模塊 當(dāng)用戶(hù)使用 Client 界面點(diǎn)擊注冊(cè)賬號(hào)用戶(hù)要把個(gè)人資料填寫(xiě)完此時(shí)有一個(gè)注冊(cè)類(lèi)線程開(kāi)啟同時(shí)驗(yàn)證用戶(hù)填寫(xiě)的個(gè)人資料是否合法如果合法 將注冊(cè)的信息插入到用戶(hù)表用戶(hù)中同時(shí)還會(huì)將申請(qǐng)的賬號(hào)返回給用戶(hù)用戶(hù)可以通過(guò)這個(gè)賬號(hào)和自己注冊(cè)的密碼進(jìn)行登錄如果不合法系統(tǒng)拒絕申請(qǐng)返回到登陸界面注冊(cè)模塊圖如圖 7 圖 7 用戶(hù)注冊(cè)模塊圖 注冊(cè)好友的方法如下所示 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)用戶(hù)使用賬號(hào)和密碼進(jìn)行登錄這時(shí)候有一個(gè)登錄線程將用戶(hù)發(fā)過(guò)來(lái)的用戶(hù)信息和后臺(tái)數(shù)據(jù)庫(kù)里的用戶(hù)信息進(jìn)行比對(duì)如果用戶(hù)的賬號(hào)和密碼與之完全匹配則用戶(hù)成功登錄并且返回給用戶(hù)登錄賬號(hào)的好友列表好友資料好友狀態(tài)如果不匹配服務(wù)器則告知登陸的用戶(hù)登錄失敗用戶(hù)登錄活動(dòng)圖 8 圖 8 登陸模型圖 證 利用 JFrame 類(lèi)寫(xiě)一個(gè)登陸界面類(lèi) ClientFrame 在登陸界面類(lèi)給所有的按鈕添加監(jiān)聽(tīng)事件類(lèi) LoginFrameHandler 點(diǎn)擊登陸進(jìn)入驗(yàn)證登陸環(huán)節(jié)將登陸界面獲取的登陸賬號(hào)密碼狀態(tài)全部用一個(gè)登陸用戶(hù)類(lèi) LoginModel 分裝起來(lái)然后寫(xiě)一個(gè)方法根據(jù)獲取的賬號(hào)和密碼從數(shù)據(jù)庫(kù)中查找如果能找到那么說(shuō)明有這個(gè)用戶(hù)用戶(hù)進(jìn)入登陸成功顯示好友界面這一環(huán)節(jié)如果根據(jù)賬號(hào)和密碼從數(shù)據(jù)庫(kù)中找不到該用戶(hù)那么說(shuō)明密碼和賬號(hào)有問(wèn)題這時(shí)提示輸入密碼和賬號(hào)有問(wèn)題請(qǐng)關(guān)閉當(dāng)前提示請(qǐ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)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1