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

正文內(nèi)容

基于cs結(jié)構(gòu)的即時通信系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計論文(參考版)

2025-07-07 06:06本頁面
  

【正文】 填寫登錄信息 向在線好友發(fā)布 上線信息 創(chuàng)建拒絕登錄消息 消除離線消息記 錄 創(chuàng)建離線消 息 創(chuàng)建登錄成功消息 返回在線好友 更新在線狀態(tài) 校驗身份 登錄請求 登錄請求(失?。? 登錄請求(成功 ) 好友離線消 息 客戶機(jī) 客戶機(jī) 服務(wù)器 填寫短信內(nèi)容 19 對方已離線則發(fā)往服務(wù)器 網(wǎng)絡(luò)故障 成功發(fā)送 圖 47 發(fā)送消息活動圖 系統(tǒng)類設(shè)計 Message 類的設(shè)計 : 客戶端和服務(wù)器端通信時,發(fā)送的都是 Message 類的對象,因此 Message 類的設(shè)計很重要。此包中包含接收者的信息,如果接收者在線,數(shù)據(jù)包將會轉(zhuǎn)發(fā)到接收者 [17]。服務(wù)器再檢查是否有他的離線消息,如果有這立即發(fā)送給用戶。如果登陸成功,就更新在線狀態(tài)。 15 ER 模型如圖所示 圖 41 系統(tǒng)實體及其屬性 表 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) 性別 系統(tǒng)模塊設(shè)計 聊天系統(tǒng)工作原理圖 Socket(TCP) Socker(TCP) Socker(TCP) 服務(wù)器 客戶 客戶 客戶 User password age Profileld sex account Name signature 16 ……. 圖 42 系統(tǒng)工作原理 系統(tǒng)功能模塊圖: 圖 43 系統(tǒng)模塊 系統(tǒng)用例圖 普通用戶的用例圖: 用戶 注冊 登錄 文字 JAVA 聊天系統(tǒng) 注冊 登錄模塊 文件模塊 聊天模塊 用戶管理模塊 文件接收 文件發(fā)送 發(fā)送文字 發(fā)送圖片 查找用戶 在線用戶管理 刪除用戶 增加用戶 修改用戶 查看在線用戶 踢用戶下線 17 uses uses uses uses 圖 44 普通用戶用例圖 后臺管理員的用例圖: 圖 45 后臺用戶用例圖 活動圖 (1)用戶登陸活動圖 首先填寫登錄信息,提交以后服務(wù)器會對用戶名和密碼進(jìn)行驗證。 (8)在線用戶的操作 管理員通過 B/S 的系統(tǒng) 對在線用戶操作,可以踢用戶下線。默認(rèn)儲存在 C 盤下面,會以用戶的登錄賬號為名。 B 接收到 A 發(fā)來的文件信息,會根據(jù)文件發(fā)送的狀態(tài)和 byte[]構(gòu)造文件 [1314]。 (5)發(fā)送文件 客戶端 A 點擊發(fā)送文件按鍵,從本地選擇文件,將文件在 byte[]數(shù)組中分批次發(fā)送到服務(wù)器端。 B 接收到 A 發(fā)來的截圖信息,會根據(jù) byte[]構(gòu)造圖片,將圖片顯示出來。 (4)發(fā)送截圖 客戶端 A 點擊截圖按鈕,將屏幕鎖定,截取圖片,將圖片儲存在 byte[]數(shù)組中發(fā)送到服務(wù)器端。如果 B 不在線則把信息儲存在服務(wù)器,等 B 上線了在發(fā)送給他。 (3)聊天 客戶端首先發(fā)送消息到服務(wù)器端,服務(wù)器端根據(jù)發(fā)送人信息和接收者信息來轉(zhuǎn)發(fā)。 13 (2)登錄 在客戶端,用戶輸入其號碼和密碼,然后建立與服務(wù)器的連接,告訴服務(wù)器我要登錄,服務(wù)器收到后,開始通過 JDBC 讀取數(shù)據(jù)庫,然后與用戶輸入的信息進(jìn)行比對,如果成功,便打開主程序窗口。 系統(tǒng)需求分析 功能分析: 本系統(tǒng)要實現(xiàn)的功能如下: (1)注冊 服務(wù)器收到用戶的注冊請求,便開始接受客戶傳遞的信息,諸如客戶的呢稱,性別,籍貫,個人資料等,接受完畢后,便通過 JDBC 與后臺數(shù)據(jù)庫連接,然后向數(shù)據(jù)庫添加記錄,如果成功,便向客戶返回其號碼。如果要實現(xiàn) inter 上通訊,只需要將服務(wù)器端運行在一個有固定 IP 的公網(wǎng)上就可以。 本系統(tǒng)需要一個MySQL 數(shù)據(jù)庫服務(wù)器,由于并發(fā)使用人數(shù)比較少, tomcat 可以作為 web 服務(wù)器,所以成本很低。因此技術(shù)上是可以實現(xiàn)的。 在后臺管理系統(tǒng),可以到對用戶進(jìn)行增刪改查,查看在線用戶,和踢用戶下線。 ARP ICMP IP RARP IGMP 網(wǎng)絡(luò)接口 12 服務(wù)器端應(yīng)當(dāng)建立一個 ServerSocket,并且不斷進(jìn)行偵聽是否有客戶端連接或者斷開連接 (包括判斷沒有響應(yīng)的連接超時 )。 3 即時通信系統(tǒng)分析 系統(tǒng)基本功能描述 客戶端可以實現(xiàn)注冊,即時聊天,相互之間收發(fā)文件,發(fā)送截圖,查看歷史聊天記錄等功能。而 TCP 協(xié)議則解決了數(shù)據(jù)傳輸可靠性的問題。每一層都呼叫它的下一層所提供的協(xié)議來完成自己的需求。 傳輸層 :主要功能是為 Inter 提供可靠地傳輸控制 ,主要的協(xié)議包括 TCP 協(xié)議和UDP 協(xié)議。 網(wǎng)絡(luò)層 :主要功能是管理 Inter 地址、路由選擇、數(shù)據(jù)的分片和重組。協(xié)議采用了 4 層的層級結(jié)構(gòu) :網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層。 TCP/IP 協(xié)議 TCP/IP(Transmission Control Protocol/Inter Protocol,傳輸控制協(xié)議 /網(wǎng)際協(xié)議 ),是Inter 最基本的協(xié)議、 Inter 國際互聯(lián)網(wǎng)的基礎(chǔ) ,主要的組成部分是網(wǎng)絡(luò)層的 IP 協(xié)議族和傳輸層的 TCP 協(xié)議族。它是一次性到位的開發(fā),能實現(xiàn)不同的人員,從不同的地點,以不同的接入方式(比如 LAN, WAN, Inter/Intra 等)訪問和操作共同的數(shù)據(jù)庫;它能有效地保護(hù)數(shù)據(jù)平臺和管理訪問權(quán)限,服務(wù)器數(shù)據(jù)庫也很安全 。這樣就大大簡化了客戶端電腦載荷,減輕了系統(tǒng)維護(hù)與升級的成本和工作量,降低了用戶的總體成本( TCO)。它是隨著 Inter技術(shù)的興起,對 C/S 結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)??蛻舳擞糜谟脩舻淖浴⒌卿?、通訊,而服務(wù)器端用來接收用戶注冊信息、驗證登錄信息以及轉(zhuǎn)發(fā)用戶之間相互通訊的信息。發(fā)送和接收數(shù)據(jù)報需要使用 Java 類庫中的 DatagramPacket 類和 DatagramSocket 類。 數(shù)據(jù)報通信 數(shù)據(jù)報是一種無連接的通信方式,它的速度比較快 ,但是由于不建立連接 ,不能保證所有數(shù)據(jù) 都能到達(dá)目的地 [6]。 由于本系統(tǒng)存在單個服務(wù)程序與多個客戶程序通信的可能 ,所以服務(wù)程序要響應(yīng)客戶程序不應(yīng)該花很多時間 ,否則客戶程序在得到服務(wù)前有可能花很多時間來等待通信的建立 ,然而服務(wù)器程序和客戶程序的會話可能很長 ,因此 ,為加快對客戶程序連接請求的響應(yīng) ,比較好的解決方法是服務(wù)器主機(jī)運行一個后臺線程 ,這個后臺線程處理服務(wù)器和客戶端程序的通信。 客戶端執(zhí)行下列語句請求與服務(wù)器進(jìn)行連接 : Socket socket = new Socket (serverName,port)。套接字分為服務(wù)器端套接字、客戶端套接字。套接字 (Socket)是 9 兩個主機(jī)之間邏輯連接的端點 ,用來實現(xiàn)客戶方和服務(wù)方的連接??蛻舳藦膰L試建立與服務(wù)器連接開始 ,服務(wù)器可能接受或拒絕連接。 套接字通信 網(wǎng)絡(luò)程序設(shè)計通常涉及一個服務(wù)器和一個或多個客戶端。 即時通訊系統(tǒng)原理 Java 支持流套接字和數(shù)據(jù)報套接字。目前,在 Inter 上所流行的主要網(wǎng)站的構(gòu)架方式是 LAMP( Linux+Apache+MySQL+PHP/Perl/Python)和 LNMP( Linux+Nginx+MySQL+php/perl/Python),即使用 Linux 作為操作系統(tǒng), Apache 和Nginx 作為 Web 服務(wù)器, MySQL 作為數(shù)據(jù)庫, PHP/Perl/Python 作為服務(wù)器端腳本解釋器。 與其他的大型數(shù)據(jù)庫例如 Oracle、 DB SQL Server 等相比, MySQL 自有它的不足之處,如規(guī)模小、功能有限( MySQL Cluster 的功能和效率都相對比較差)等,但是這絲毫也沒有減少它受歡迎的程度。目前 MySQL 被廣泛地應(yīng)用在 Inter 上的中小型網(wǎng)站中。這樣可以減輕服務(wù)器端的開銷 ,同時保證了多個用戶端連接能夠得到快速而高效的服務(wù) [9]。在本系統(tǒng)中 ,設(shè)置后臺線程處理服務(wù)器和客戶程序的通信。因此線程間的切換也是低開銷的。在創(chuàng)建或撤銷進(jìn)程時 ,系統(tǒng)都要為之創(chuàng)建和回收進(jìn)程控制塊 ,分配或回收資源 ,如內(nèi)存空間和 I/O 設(shè)備 ,系統(tǒng)所付出的開銷明顯大于創(chuàng)建或撤銷時的開銷?;谶M(jìn)程的多任務(wù)處理的特點是一個程序可以同時執(zhí)行兩個或多個任務(wù)的功能。因此 ,基于進(jìn)程的多任務(wù)處理的特點是允許你的計算機(jī)同時運行兩個或更多的程序。進(jìn)程是程序的一次動態(tài)執(zhí)行 ,對應(yīng)了從代碼加載、執(zhí)行至執(zhí)行完畢的一個完整過程。 其中文本域 (JTextField)是用來輸入或顯示字符串的 Swing 組件 [12],文本區(qū)域(JTextArea)可以讓用戶輸入多行文本的 Swing 組件 [12]。本系統(tǒng)中大量使用了 Swing 組件編程。 Swing 編程 包在圖形界面設(shè)計上比 AWT 更豐富 ,更美觀。 7 MyEcIipse MyEclipse 企業(yè)級工作平臺 (MyEcIipse Enterprise Workbench,簡稱 MyEcIipse )是對 Eclipse IDE 的擴(kuò)展 ,集成了從 J2EE 到各種輕量級的框架 (Struts,Spring,Hibemate等等 ),有利于程序的一體化開發(fā)。 Java web 和 struts2 技術(shù) 采用 B/S 的結(jié)構(gòu)實現(xiàn)服務(wù)器端,對用戶和在線用戶進(jìn)行增刪改查,和踢用戶下線,以及開啟服務(wù)器和關(guān)閉服務(wù)器。在網(wǎng)絡(luò)環(huán)境下 ,Java語言編寫的代碼用于客戶端架構(gòu)可減少維護(hù)工作。 (11)Java 語言是動態(tài)的。只要操作系統(tǒng)支持 ,Java 中的線程就可以利用多個處理器。 Java 采用 JIT 編譯器 (即時編譯器 ),而即時編譯器的基本工作方式是一次把字節(jié)碼編譯為本地代碼 ,并將結(jié)果緩存起來 ,在需要的時候重新調(diào)用 ,由于這種方式只需要進(jìn)行一次解釋 ,從而極大地提高了常用代碼的運行速度。 Java 系統(tǒng)本身也具有很強(qiáng)的可移植性 ,Java 編譯器是用 Java 實現(xiàn)的 ,Java 的運行環(huán)境是用 ANSI C 實現(xiàn)的。與 C/C++不同 ,Java 規(guī)范中沒有“依賴具體實現(xiàn)”的地方。 Java 程序 (后綴為 java 的文件 )在 Java 平臺上被編譯為體系結(jié)構(gòu)中立的字節(jié)碼格式 (后綴為 class 的文件 ),只要有 Java 運行時系統(tǒng) ,這種字節(jié)碼不僅可以很容易地在任何機(jī)器上被解釋執(zhí)行 ,而且還可以迅速地翻譯成本地機(jī)器的代碼。 Java 程序在語言定義階段、字節(jié)碼檢查階段及程序執(zhí)行階段進(jìn)行的三級代碼安全檢查機(jī)制 ,對參數(shù)類型匹配、對象訪問權(quán)限、內(nèi)存回收、 Java小應(yīng)用程序的正確使用等都進(jìn)行了嚴(yán)格的檢查和控制 ,可以有效地防止非法代碼的入侵 ,阻止對內(nèi)存的越權(quán)訪問 ,能夠避免病毒的侵害。 Java 的安全檢查機(jī)制使得 Java 更具健壯性。 Java 通過強(qiáng)類型機(jī)制、異常處理、垃圾的自動收集等機(jī)制來保證 Java 程序的健壯性。在運行時 ,Java 平臺中的 Java 解釋器對這些 6 字節(jié)碼進(jìn)行解釋執(zhí)行 ,執(zhí)行過程中需要的類在聯(lián)接階段被載入到運行環(huán)境中。 (4) Java 語言是解釋型的。從誕生起 ,Java 就與網(wǎng)絡(luò)聯(lián)系在一起 ,它強(qiáng)調(diào)網(wǎng)絡(luò)特性 ,內(nèi)置 TCP/IP、 HTTP、 FTP 協(xié)議類庫 ,Java 應(yīng)用程序能過通過 URL 打開和訪問網(wǎng)絡(luò)上的對象 ,其便利程度如同訪問本地文件系統(tǒng)一樣。 Java 簡單性的另一方面是小。特別地 ,Java 語言不使用指針 ,并提供了自動垃圾回收機(jī)制 [9]。 (2) Java 語言是簡單的。為了簡單起見 ,Java 語言只支持類之間的單繼承 ,但支持接口之間的多繼承。 (1) Java 語言是面向?qū)ο蟮某绦蛟O(shè)計語言。迄今為止 ,Java 語言已作為一門綜合性技術(shù)在眾多領(lǐng)域得到發(fā)展和應(yīng)用。 Java 是一個由 Java 虛擬機(jī) (Java Virtual Machine)和 Java 應(yīng)用編程接口 (Application Programming Interfac
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1