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

正文內(nèi)容

基于java的聊天系統(tǒng)的設計與實現(xiàn)(編輯修改稿)

2025-07-21 23:50 本頁面
 

【文章內(nèi)容簡介】 用 Swing 和 socket 技術,可以很輕松地開發(fā)出實用、簡便、高效的基于網(wǎng)絡的即時通訊系統(tǒng)。因此技術上是可以實現(xiàn)的。(2) 經(jīng)濟可行性計算機網(wǎng)絡已經(jīng)普及,因此在網(wǎng)絡設備上不需要進行大的投入。本系統(tǒng)需要一個MySQL 數(shù)據(jù)庫服務器,由于并發(fā)使用人數(shù)比較少,tomcat 可以作為 web 服務器,所以成本很低。(3) 操作可行性只要一臺以上計算機連接在同一個局域網(wǎng)內(nèi),本系統(tǒng)就可以安裝使用,所以操作上完全不存在問題。如果要實現(xiàn) inter 上通訊,只需要將服務器端運行在一個有固定 IP的公網(wǎng)上就可以。綜上所述,即時 Java 即時通訊系統(tǒng)是可行的。7 系統(tǒng)需求分析 功能分析本系統(tǒng)要實現(xiàn)的功能如下:1)注冊服務器收到用戶的注冊請求,便開始接受客戶傳遞的信息,諸如客戶的呢稱,性別,籍貫,個人資料等,接受完畢后,便通過 JDBC 與后臺數(shù)據(jù)庫連接,然后向數(shù)據(jù)庫添加記錄,如果成功,便向客戶返回其號碼??蛻羰盏椒掌鞣祷氐男畔⒑螅愦蜷_窗口登陸。2)登陸在客戶端,用戶輸入其號碼和密碼,然后建立與服務器的連接,告訴服務器我要登錄,服務器收到后,開始通過 JDBC 讀取數(shù)據(jù)庫,然后與用戶輸入的信息進行比對,如果成功,便打開主程序窗口。然后客戶向服務器請求讀取好友名單,服務器收到該請求,從數(shù)據(jù)庫中取出好友列表,然后向客戶端發(fā)送這些信息,客戶收到后就在主窗口顯示好友。3)聊天客戶端首先發(fā)送消息到服務器端,服務器端根據(jù)發(fā)送人信息和接收者信息來轉(zhuǎn)發(fā)。例如服務器接收到一個 A 發(fā)給 B 的消息,先判斷 B 是否已經(jīng)在線,如果在線就將信息發(fā)送過去。如果 B 不在線則把信息儲存在服務器,等 B 上線了在發(fā)送給他。B 接收到 A 發(fā)來的信息,如果是未建立對話窗口,則自動打開顯示。4)發(fā)送截圖客戶端 A 點擊截圖按鈕,將屏幕鎖定,截取圖片,將圖片儲存在 byte[]數(shù)組中發(fā)送到服務器端。服務器端根據(jù)發(fā)送人信息和接收者信息來轉(zhuǎn)發(fā)。B 接收到 A 發(fā)來的截圖信息,會根據(jù) byte[]構(gòu)造圖片,將圖片顯示出來。同樣,如果是未建立對話窗口,則自動打開顯示。5)發(fā)送文件客戶端 A 點擊發(fā)送文件按鍵,從本地選擇文件,將文件在 byte[]數(shù)組中分批次發(fā)送到8服務器端。服務器端根據(jù)發(fā)送人信息和接收者信息來轉(zhuǎn)發(fā)。B 接收到 A 發(fā)來的文件信息,會根據(jù)文件發(fā)送的狀態(tài)和 byte[]構(gòu)造文件。6)日志客戶端發(fā)送和接收到的信息都會儲存在文本文檔中。默認儲存在 C 盤下面,會以用戶的登錄賬號為名。7)對用戶的操作 管理員通過 B/S 的系統(tǒng)對用戶進行增加,修改,刪除,查找等操作,對系統(tǒng)進行維護。8)在線用戶的操作 管理員通過 B/S 的系統(tǒng)對在線用戶操作,可以踢用戶下線。9第 4 章 系統(tǒng)設計 數(shù)據(jù)庫設計本系統(tǒng)中所涉及的主要實體及其屬性有:用戶(用戶賬號,用戶名,密碼,個性簽名,頭像 ID,年齡,性別) ER 模型如圖所示。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)實體及其屬性表 41 User字段名 數(shù)據(jù)類型 字段說明 鍵引用 備注account int(6) ID PK 主鍵(自動增一)name varchar(20) 用戶名稱 非空password varchar(20) 用戶密碼 非空signature Varchar(255) 簽名profileID int(2) 頭像 IDage int(3) 年齡sex sex char(2) 性別10 系統(tǒng)模塊設計 聊天系統(tǒng)工作原理圖 圖 42 系統(tǒng)工作原理11 系統(tǒng)功能模塊圖:J A V A 聊天系統(tǒng) 文件模塊聊天模塊登錄模塊 用戶管理模塊文件接收 文件發(fā)送 發(fā)送文字發(fā)送圖片 在線用戶管理 增加用戶 刪除用戶 修改用戶 查找用戶 查看在線用戶 踢用戶下線 注冊 圖 43 系統(tǒng)模塊 系統(tǒng)用例圖:普通用戶的用例圖:用戶注冊登陸聊天文件發(fā)送文件接收文件文字圖片 u s e s u s e s u s e s u s e s 圖 44 普通用戶用例圖12后臺管理員的用例圖:管理員登陸增加用戶踢用戶下線查看在線用戶刪除用戶查找用戶修改用戶圖 45 后臺用戶用例圖 活動圖:1)用戶登陸活動圖首先填寫登陸信息,提交以后服務器會對用戶名和密碼進行驗證。如果不正確,返回一個提示信息。如果登陸成功,就更新在線狀態(tài)。通知所有好友自己已經(jīng)上線。服務器再檢查是否有他的離線消息,如果有這立即發(fā)送給用戶。13圖 46 用戶登錄活動圖2)發(fā)送消息活動圖短消息發(fā)送以后,服務器端對應的監(jiān)聽線程會接收到一個數(shù)據(jù)包。此包中包含接收者的信息,如果接收者在線,數(shù)據(jù)包將會轉(zhuǎn)發(fā)到接收者。如果不在線,存在服務器端,等它上線在發(fā)送。14圖 47 發(fā)送消息活動圖 系統(tǒng)類設計 Message 類的設計:客戶端和服務器端通信時,發(fā)送的都是 Message 類的對象,因此 Message 類的設計很重要。15 表 42 Message屬性名 作用private Integer msgType。 信息類型private String content。 信息的文本內(nèi)容private Integer senderAccount。 發(fā)送者 accountprivate Integer receiverAccount。 接收者 accountprivate String time。 發(fā)送時間private User myself。private ListUser friends。自己本身對象,用與好友列表頭好友列表private transient Image img。 圖片對象(不傳送)private byte[] imageByte。 圖片的內(nèi)容private String fileName。 文件名稱private byte[] fileByte。 文件的長度private int length。//文件長度,以KB為單位文件的內(nèi)容private int state。 文件傳輸?shù)臓顟B(tài):0 是不接受文件,1 是接受文件,2 請求發(fā)送文件,3 文件傳輸中,4 文件傳送完成private Integer msgType消息的類型有這么幾種: public interface MessageType {Integer message_succeed=1。//表明是登陸成功Integer message_login_fail=2。//表明登錄失敗Integer message_m_mes=3。//普通信息包Integer message_get_onLineFriend=4。//要求在線好友的包Integer message_ret_onLineFriend=5。//返回在線好友的包Integer message_offline=6。//下線通知包Integer message_img=7。//圖片包Integer message_file=8。//文件包} 截圖類的設計:截圖類的實現(xiàn)類為:class Screenshot extends JFrame implements MouseListener,MouseMotionListener。16+ m o u s e D r a g g e d ( i n M o u s e E v e n t e )+ m o u s e C l i c k e d ( i n M o u s e E v e n t e )+ m o u s e P r e s s e d ( i n M o u s e E v e n t e )+ m o u s e R e l e a s e d ( i n M o u s e E v e n t e )+ p a i n t ( i n G r a p h i c s g )S c r e e n s h o tM o u s e L i s t e n e rM o u s e M o t i o n L i s t e n e r+ p a i n t ( i n G r a p h i c s g )J F r a m e監(jiān)聽各種鼠標動作圖 48 Screenshot 類截圖類的核心是 JDK 中:Robot 類中 createScreenCapture(Rectangle screenRect) 創(chuàng)建包含從屏幕中讀取的像素的圖像。先用截取全部屏幕的圖片,然后顯示出來,覆蓋住整個屏幕。然后監(jiān)聽鼠標事件,再用createScreenCapture(Rectangle screenRect)方法截圖。雙擊表示截圖成功,右鍵表示取消截圖。 聊天記錄類的設計:記錄日志的功能被封裝在 MessageRecord 類中,所在包為,在發(fā)送或接受到數(shù)據(jù)后,將其寫入日志文件。+ a f t e r S e n d ( i n o : O b j e c t )+ a f t e r R e c e i v e ( i n o : O b j e c t )M e s s a g e R e c o r da f t e r S e n d : 記錄發(fā)出數(shù)據(jù)a f t e r R e c e i v e : 記錄接收到的數(shù)據(jù)+ r u n ( )+ s e n d ( i n o : O b j e c t )+ r e c e i v e ( ) : O b j e c tC l i e n t C o n n T o S e r v e r T h r e a d+ r u n ( )T h r e a d 圖 49 MessageRecord 類如果是圖片則顯示出,發(fā)送時間和圖片大小。如果是文件則顯示出請求發(fā)送時間,17同意接收時間,接收完成時間,和文件大小。 日志文件格式如下: 圖 410 記錄文件 服務端線程的設計:服務器端的核心是對應客戶的線程,每個 socket 對應一個線程,也就是每一個客戶端都在服務器端有一個相應的線程。它負責轉(zhuǎn)發(fā)客戶端發(fā)來的消息。線程類為 ClientThread:表 43 ClientThread 類屬性名 作用public void notifyOnline() 通知其他線程,自己上線了,讓客戶方更新頭像public void run() 線程的主題,轉(zhuǎn)發(fā)消息public void notifyOffline(){ 通知其他線程,自己下線了,讓客戶方更新頭像public void send(Object o) 發(fā)送消息public Object receive() 接收消息18第 5 章 系統(tǒng)實現(xiàn) 實現(xiàn)概況本系統(tǒng)可分為登錄、聊天、文件、用戶管理和注冊五個功能模塊。 “登錄”模塊為用戶提供登錄界面,并在用戶登錄顯示好友列表;“聊天”模塊實現(xiàn)用戶的即時傳送信息,即多用戶即時聊天,可以發(fā)送文字或者截圖;“文件”模塊主要實現(xiàn)一用戶向另一用戶發(fā)送文件,對方可以選擇接受或者拒絕。聊天記錄會以文本文檔格式保存。 “用戶管理”模塊即管理員對用戶進行增刪改查,和踢用戶下線的操作。下面詳細介紹各個模塊的具體實現(xiàn)。 注冊模塊 流程
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1