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

正文內(nèi)容

基于cs架構(gòu)的java網(wǎng)絡(luò)聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文-文庫吧資料

2025-03-06 09:20本頁面
  

【正文】 pazadNuKNamp。 qYpEh5pDx2zVkumamp。MuWFA5uxY7JnD6YWRrWwc^vR9CpbK!zn% Mz849Gx^G89Am UE9aQGn8xp$Ramp。 gTXRm 6X4NGpP$vSTTamp。849Gx^Gj qv^$UE9wEwZQcUE%amp。 QA9wkxFyeQ^! dj sXuyUP2kNXpRWXm Aamp。 ksv*3t nGK8! z8vGt YM*Jgamp。 qYpEh5pDx2zVkum amp。 ksv*3t nGK8! z89Am YWpazadNuKNamp。 qYpEh5pDx2zVkumamp。 ksv*3t nGK8! z89Am YWpazadNuKNamp。 qYpEh5pDx2zVkumamp。 ksv*3tnGK8! z89Am YWpazadNuKNamp。 qYpEh5pDx2zVkumamp。 ksv*3tnGK8! z89Am UE9aQGn8xp$Ramp。 qYpEh5pDx2zVkumamp。 ksv*3t nGK8! z89Am YWpazadNuKNamp。 qYpEh5pDx2zVkum amp。 ksv*3t nGK8! z89Am YWpa zadNuKNamp。 qYpEh5pDx2zVkum amp。ksv*3t nGK8!z89Am YWpazadNuKNamp。 qYpEh5pDx2zVkumamp。 UE9aQGn8xp$Ramp。 6a*CZ7H$dq8Kqqf HVZFedswSyXTyamp。我相信自己會在將來的軟件設(shè)計(jì)、開發(fā)過程中更進(jìn)一 步地學(xué)習(xí),不斷提升自己的專業(yè)能力。 通過這次的畢業(yè)設(shè)計(jì),我充分體會到學(xué)習(xí)理論知識的重要性 ,但更加體會到動手實(shí)踐的必要性?;旧习舜髮W(xué)所學(xué)習(xí) Java 的所有知識。后臺還可以對用戶進(jìn)行管理。 結(jié)語 本系統(tǒng)采用 C/S 模式,聊天室頁面簡潔,操作便捷,穩(wěn)定可靠,性能優(yōu)良。 解決方法已經(jīng)在本論文數(shù)據(jù)庫設(shè)計(jì)中具體制定了出來,目標(biāo)將以 Mysql 為數(shù)據(jù)庫, Java JDBC 技術(shù)對數(shù)據(jù)庫執(zhí)行增刪改查等操作。這就造成了數(shù)據(jù)急不安全,操作麻煩等問題。 33 如何解決 采用獨(dú)立線程管理用戶對話信息,實(shí)現(xiàn)聊天全雙工對話,確保鏈路暢通。并附加踢用戶下線的功能。 } 28 用戶管理模塊 流程圖 開 始登 陸用 戶 增 刪 改 查 查 看 在 線 用 戶 踢 用 戶 下 線結(jié) 束 圖 510 web 用戶登錄圖 由于這是后期延伸的項(xiàng)目功能,暫時并沒有實(shí)現(xiàn)。 (data)。 len = ()。 =()。 =name。 FileInputStream fis。 27 if (result == ) { selectedFile = ()。 int result = (null)。關(guān)鍵代碼如下: if(((JLabel)()).getName().equals(file)){ JFileChooser jf=new JFileChooser(請選擇所要發(fā)送的文件 )。 (())。 (())。 while(().length100){ tempSign+=\0。 while(().length256){ tempPhoto+=\0。 25 while(().length20){ tempNickname+=\0。 while(().length16){ tempPassword+=\0。 (打包時候的 userID +())。 (source)。 (type)。 ([server]: +new DateProcess().lProcess()+下發(fā)一條好友留言信息 ...)。 ()。){ MessageHead tm = (MessageHead)()。 } } } //發(fā)送離線消息 if(()!=0) for (Iterator it = ()。 ().flush()。f。 (20)。 ()。 (0)。然后在服務(wù)器上專門開啟一個針對當(dāng)前用戶的線程,并且吧線程放入管理類中,便于日后的管理。 } public void setUserID(int userID) { 23 = userID。 } private int userID。 } 2)服務(wù)器端代碼: 服務(wù)器端接收用戶驗(yàn)證信息的代碼被寫在了一個線程 public class ServerThread extends Thread中,這樣服務(wù)器就可以不停的監(jiān)聽端口,接收來自不同客戶端的請求,建立 socket連接,也不會堵塞在主線程當(dāng)中。 =process。 process = new ThreadProcess((username))。 } //登錄成功 else if(result==0){ //將該用戶添加到 ClientTools里面 (client)。 //已經(jīng)登錄 if(result==1){ (null, 該用戶已經(jīng)登錄 )。 22 ClientThread client = new ClientThread()。 return。 (username++password)。 } } 21 登錄模塊 流程圖 開 始填 寫 用 戶信 息驗(yàn) 證 用 戶 信 息驗(yàn) 證 用 戶結(jié) 束接 收 離 線信 息成 功失 敗發(fā) 送 登 陸失 敗 信 息 圖 53 登錄流程圖 關(guān)鍵代碼 1)客戶端代碼 String username = ()。 String answer = new String(r).trim()。 byte[] r = new byte[4]。 (data)。 byte[] data = new Pack().pack(rm) 。 dos=new DataOutputStream(os)。 } } //注冊方法 public int regist(RegistMsg rm) throws Exception{ InputStream is = ()。 } catch (UnknownHostException e) { ([client]: +new DateProcess().lProcess()+ 未知的服務(wù)器鏈接 ...)。 =rm。 } public Regist(RegistMsg rm){ 20 try { Socket rs = new Socket(,9999)。 public void setAnswer(int answer) { = answer。 private RegistMsg rm。 private DataOutputStream dos。 屬性 名 作用 public void notifyOnline() 通知其他線程,自己上線 了,讓客戶方更新頭像 public void run() 線程的主題,轉(zhuǎn)發(fā)消息 public void notifyOffline(){ 通知其他線程,自己下線了,讓客戶方更新頭像 public void send(Object o) 發(fā)送消息 public Object receive() 接收消息 屬性 名 作用 public int login (String username,String password) 傳入帳號密碼給服務(wù)器端驗(yàn)證 public void run() 線程的主題,讀取服務(wù)器端發(fā)來的資料并顯示相關(guān)內(nèi)容 public void sendMsg2Server(byte[]data) 向服務(wù)器端發(fā)送信息 public void sendCheckMsg2Server() 向服務(wù)器發(fā)送確認(rèn)信息,確保鏈路通暢 public void MonitorThread() 檢測連接狀態(tài),確保鏈路通暢 19 注冊模塊 流程圖 開 始填 寫 用 戶 信息存 入 數(shù) 據(jù) 庫顯 示 賬 號結(jié) 束 圖 51 用戶注冊流程圖 關(guān)鍵代碼 public class Regist { private Socket socket = null。聊天記錄會以文本文檔格式保存。 線程類為 ClientThread: 表 43 ClientThread 類 18 客戶端線程類設(shè)計(jì) 實(shí)現(xiàn)概況 本系統(tǒng)可分為登錄、聊天、文件、用戶管理和注冊五個功能模塊。 17 圖 47發(fā)送消息活動圖 系統(tǒng)類設(shè)計(jì) 服務(wù)端線程的設(shè)計(jì) : 服務(wù)器端的核心是對應(yīng)客戶的線程,每個 socket 對應(yīng)一個線程,也就是每一個客戶端都在服務(wù)器端有一個相應(yīng)的線程。此包中包含接收者的信息,如果接收者在線,數(shù)據(jù)包將會轉(zhuǎn)發(fā)到接收者。服務(wù)器再檢查是否有他的離線消息,如果有這立即發(fā)送給用戶。如果登陸成功,就更新在線狀態(tài)。 u s e ra c c o u n tN a m ep a s s w o r ds i g n a t u r eP r o f i l e I Da g es e x 圖 41系統(tǒng)實(shí)體及其屬性 表 41 User 字段名 數(shù)據(jù)類型 字段說明 鍵引用 備注 account int(6) ID PK 主鍵(自 動增一) name varchar(20) 用戶名稱 非空 password varchar(20) 用戶密碼 非空 signature Varchar(255) 簽名 profileID int(2) 頭像 ID age int(3) 年齡 sex sex char(2) 性別 13 系統(tǒng)模塊設(shè)計(jì) 聊天系統(tǒng)工作原理圖 圖 42 系統(tǒng)工作原理 14 系統(tǒng)功能模塊圖: J A V A 聊 天系 統(tǒng) 文 件模 塊聊 天模 塊登 錄模 塊 用 戶 管 理模 塊文 件接 收 文 件發(fā) 送 發(fā) 送文 字發(fā) 送圖 片 在 線用 戶管 理 增 加用 戶 刪 除用 戶 修 改用 戶 查 找用 戶 查 看在 線用 戶 踢 用戶 下線 注 冊 圖 43 系統(tǒng)模塊 系統(tǒng)用例圖: 普通用戶的用例圖: 15 用 戶注 冊登 陸聊 天文 件發(fā) 送 文 件接 收 文 件文 字圖 片 u s e s u s e s u s e s u s e s 圖 44 普通用戶用例圖 活動圖: 1) 用戶登陸活動圖 首先填寫登陸信息,提交以后服務(wù)器會對用戶名和密碼進(jìn)行驗(yàn)證。 8)在線用戶的操作 管理員通過 B/S 的系統(tǒng)對在線用戶操作,可以踢用戶下線。默認(rèn)儲存在 C 盤下面,會以用戶的登錄賬號為名。 B 接收到 A 發(fā)來的文件信息,會根據(jù)文件發(fā)送的狀態(tài)和 byte[]構(gòu)造文件。 5)發(fā)送文件 客戶端 A 點(diǎn)擊發(fā)送文件按鍵,從本地選擇文件,將文件在 byte[]數(shù)組中分批次發(fā)送到服務(wù)器端。 B 接收到 A 發(fā)來的截圖信息,會根據(jù) byte[]構(gòu)造圖片,將圖片顯示出來。 4)發(fā)送截圖 客戶端 A 點(diǎn)擊截圖按鈕,將屏幕鎖定,截取圖片,將圖片儲存在 byte[]數(shù)組中發(fā)送到服務(wù)器 端。如果 B 不在線則把信息儲存在服務(wù)器,等 B 上線了在發(fā)送給他。 3)聊天 11 客戶端首先發(fā)送消息到服務(wù)器端,服務(wù)器端根據(jù)發(fā)送人信息和接收者信息來轉(zhuǎn)發(fā)。 2)登陸 在客戶端,用戶輸入其號碼和密碼,然后建立與服務(wù)器的連接,告訴服務(wù)器我要登錄,服務(wù)器收到后,開始通過 JDBC 讀取數(shù)據(jù)庫,然后與用戶輸入的信息進(jìn)行比對,如果成功,便打開主程序窗口。 系統(tǒng)需求分析 功能分析 本系統(tǒng)要實(shí)現(xiàn)的功能如下: 1)注冊 服務(wù)器收到用戶的注冊請求,便開始接受客戶傳遞的信息,諸如客戶的呢稱,性別,籍貫,個人資料等,接受完畢后,便通過 JDBC 與后臺
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1