【正文】
Java 里面的 Swing、多線程、 JDBC、 Socket 等高級編程技術(shù)。借助它 ,人們可以方便地進行實時對話,文件傳送等。CS 架構(gòu)的即時聊天系統(tǒng)的設(shè)計與實現(xiàn) C/S 架構(gòu)的即時聊天系統(tǒng)的設(shè)計與實現(xiàn) 摘要: 隨著信息時代的飛速發(fā)展 ,尤其是互聯(lián)網(wǎng)技術(shù)的興起 ,使人們愈來愈傾向于通過網(wǎng)絡(luò)來交流、傳遞消息。網(wǎng)絡(luò)即時 聊天 系統(tǒng)正是這樣一個被廣泛應(yīng)用的媒介。本文以一個 “即時通訊系統(tǒng) ”的設(shè)計和開發(fā)為背景,詳細介紹了以 Java 語言和 MySql 數(shù)據(jù)庫為平臺開發(fā)軟件系統(tǒng)的過程。通過直接使用 Java 提供的ServerSocket 和 ObjectInputStream 等類將客戶端和服務(wù)器端發(fā)送的各類消息封裝成統(tǒng)一的數(shù)據(jù)流以實現(xiàn)消息的交換。 關(guān)鍵詞: Java;數(shù)據(jù)庫; Socket 編程;即時通訊系統(tǒng); TCP/IP 協(xié)議 CS 架構(gòu)的即時聊天系統(tǒng)的設(shè)計與實現(xiàn) The Instant Messaging System based on C/S Structure Abstract: With the rapid development of the information age, especially the rise of inter technology, more and more people tend to municate and deliver the messages through the messaging system is such a widely used medium. With it,the realtime dialogue and file transfer can be easily carried out. Taking the design and development of the instant messaging system as the background , this article describes in detail the process of developing software systems with Java and MySql. The realization of the system is based on the TCP / IP munication protocol, and uses a client / server mode .Many advanced java technologies such as Swing ,java multithreading, JDBC, socket programming and so on are used. By directly using the ServerSocket ,ObjectInputStream and other classes supported in Java API, messages sented by the client and server side are packaged into a uified data stream in order to achieve the exchange of messages. The whole development process of this system follows software engineering methods,and instant messaging, group chatting, file transferring and other functions are realized. Keywords: Java。 Socket programming。 TCP/IP protocol CS 架構(gòu)的即時聊天系統(tǒng)的設(shè)計與實現(xiàn) 目 錄 第一章 引言 .............................................................. 1 選題背景和意義 .................................................... 1 本文的主要工作 .................................................... 2 第二章 基于 C/S 架構(gòu)的即時通訊系統(tǒng)概述 .................................... 3 系統(tǒng)的可行性分析 .................................................. 3 系統(tǒng)的實現(xiàn)目標和基本功能 .......................................... 4 系統(tǒng)開發(fā)環(huán)境和關(guān)鍵技術(shù)介紹 ........................................ 4 第三章 基于 C/S 架構(gòu)的即時通訊系統(tǒng)設(shè)計 .................................... 8 3. 1 系統(tǒng)詳細設(shè)計 ..................................................... 8 3. 1. 1 系統(tǒng)總體流程圖 ............................................ 8 3. 1. 2 系統(tǒng)總體功能模塊劃分 ...................................... 9 3. 1. 3 系統(tǒng)用例圖 ............................................... 10 3. 1. 4 系統(tǒng)數(shù)據(jù)流圖 ............................................. 12 數(shù)據(jù)庫設(shè)計 ....................................................... 14 系統(tǒng)關(guān)鍵類結(jié)構(gòu)設(shè)計 ............................................... 19 第四章 基于 C/S 架構(gòu)的即時通訊系功能實現(xiàn) ................................. 24 注冊模塊功能實現(xiàn) ................................................. 24 登錄模塊功能實現(xiàn) ................................................. 26 聊天模塊功能實現(xiàn) ................................................. 29 文件傳送模塊功能實現(xiàn) ............................................. 31 后臺管理模塊功能實現(xiàn) ............................................. 35 第五章 總結(jié) ............................................................. 39 致謝 .................................................................... 42 參考文獻 ................................................................ 43 CS 架構(gòu)的即時聊天系統(tǒng)的設(shè)計與實現(xiàn) 本科畢業(yè)設(shè)計 1 第一章 引言 選題背景和意義 隨著經(jīng)濟全球化的發(fā)展 ,世界各地的不同人、組織、機構(gòu)之間的聯(lián)系越來越密切。在 21世紀初的短短十幾年間,即時通信系統(tǒng) (IM)的發(fā)展不斷地取得了驚人的成就。 從最早的即時通訊 軟件 ICQ 誕生至今,市場上不斷涌現(xiàn)出類似的產(chǎn)品。隨著智能手機 、平板電腦 的普及,一些移動端的即時通信系統(tǒng)也如雨后春筍般涌現(xiàn)出來,如小米公司的米聊,騰訊 公司 的微信,還有年輕人之間很流行的陌陌、游戲玩家常用的 YY 語音等 。現(xiàn)在的即時通信系統(tǒng)不僅僅是人們的溝通工具, 還成為了人們利用其進行電子商務(wù)、工作、學 習等交流的平臺 [15][16]。傳統(tǒng)的溝通交流方式如電話、傳真、郵件等已經(jīng)不能完全滿足人們學習、工作、生活的需要。很難想象一臺個人電腦沒有安裝 像 這樣的即時通訊軟件。通過現(xiàn)有的技術(shù),企業(yè)完全可以摒棄通用的免費的即時通訊系統(tǒng),轉(zhuǎn)而根據(jù)自己企業(yè)的需求 定制開發(fā)自己專屬的內(nèi)部即時通訊系統(tǒng),以實現(xiàn)更好的管理,提高員工的工作效率。 本文的主要工作 本 文圍繞一個簡單實用的即時聊天系統(tǒng)的開發(fā),詳細介紹了使用 Java 編程語言、 Java API 和 MySQL 數(shù)據(jù)庫構(gòu)建一個軟件系統(tǒng)的過程。論文分為如下幾個部分: 第一部分,闡述了對即時聊天系統(tǒng)的分析。 第二部分,闡述了整個系統(tǒng)的設(shè)計過程。 第三部分,詳細介紹了整個系統(tǒng)的實現(xiàn)。 第四部分,總結(jié)與展望。 本科畢業(yè)設(shè)計 3 第二章 基于 C/S 架構(gòu)的即時通訊系統(tǒng) 概述 系統(tǒng)的可行性分析 進行可行性研究就是 在行動以前,對要辦的事進行調(diào)查,確認其可行與不可行,即:可行則行,不可行則止。為了達到這個目的,必須認真了解用戶的要求及現(xiàn)實環(huán)境,探索若干種可供選擇的解絕方案,并對每種解決方案的可行性進行仔細論證。 技術(shù)可行性:使用現(xiàn)有的技術(shù)能是否實現(xiàn)這個系統(tǒng) 操作可行性:系統(tǒng)的操作方式在這個用戶組織內(nèi)是否行得通 在對本系統(tǒng)的分析中,同樣是從上面三個方面入手。 ( 2) 經(jīng)濟可行性:個人電腦和網(wǎng)絡(luò)的普及使得我們不需要太多的經(jīng)濟投入。無需太多的經(jīng)濟投入即 可為局域網(wǎng)內(nèi)的即時通訊系統(tǒng)的實現(xiàn)提供支持。另一方面, 只要一臺以上計算機連接在同一個局域網(wǎng)內(nèi),并且在作為客戶端機器的本系統(tǒng)中設(shè)置需要連接的作為服務(wù)器端機器的 IP 地址,本系統(tǒng)就可以實現(xiàn) 局域網(wǎng)通訊,所以操作上完全不存在問題。 綜上所述,這種 C/S 架構(gòu)的即時通訊系統(tǒng)的開發(fā)是可行的。 對于企業(yè)用戶而言,能夠?qū)崿F(xiàn) 建立員工交流平臺,統(tǒng)一信息發(fā)布平臺,減少運營成本,促進企業(yè)辦公效率。本系統(tǒng)不比商業(yè)系統(tǒng),沒有考慮過多的復雜性,主要實現(xiàn)了基本的通訊功能,以滿足學習研究之用。 系統(tǒng)開發(fā)環(huán)境和關(guān)鍵技術(shù)介紹 (1)Java 語言簡介 Java 是一種可以 撰寫跨平臺應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計語言,是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序設(shè)計語言和 Java 平臺(即 JavaSE, JavaEE, JavaME)的總稱。在全球云計算和移動互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下, Java更具備了顯著優(yōu)勢和廣闊前景 [1][8]。 本科畢業(yè)設(shè)計 5 Java 語言有著簡單、面向?qū)ο蟆⒎植际?、健壯、安全、可移植等特性,因此受到了眾多程序開發(fā)人員的青睞。它 是一個開放源代碼的、基于Java 的可擴展開發(fā)平臺。人們 最初主 要用它來做 Java 語言開發(fā),目前亦有人通過插件使其作為C++、 Python、 PHP 等其他語言的開發(fā)工具。 Eclipse 核心很小,其它所有功能都以插件的形式附加于Eclipse 核心之上。 這些特性使得 Eclipse 擁有較佳的靈活性,許多軟件開發(fā)商以 Eclipse 為框架開發(fā)自己的 IDE[13]。 MySQL 是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大倉庫內(nèi),這樣就增加了速度并提高了靈活性。對于一般的個人使用者和中小型企業(yè)來說, MySQL 提供的功能已經(jīng)綽綽有余,而且由于 MySQL 是開放源碼軟件,因此可以大大 降低總體擁有成本。本系統(tǒng)采用的后臺數(shù)據(jù)庫即為社區(qū)版 [7]。網(wǎng)絡(luò)通信的層次結(jié)構(gòu)和網(wǎng)絡(luò)通信的協(xié)議,是開發(fā)網(wǎng)絡(luò)程序的基礎(chǔ)。通過這些協(xié)議,網(wǎng)絡(luò)通信的本科畢業(yè)設(shè)計 6 各主機可以用一種統(tǒng)一而非雜亂的規(guī)范, 高效便捷地相互發(fā)送和接收消息。 ?TCP 傳輸協(xié)議說明 TCP 協(xié)議是面向連接的協(xié)議,比如說在客戶端 A 和 B 進行連接之前必須首先建立數(shù)據(jù)通路,就向打電話一樣,在通話之前必須先撥號,等待對方的接聽以后才能進行通話。由于 TCP 協(xié)議采用的是這種連接方式, 因此由它建立的連接是可靠的。 ? UDP 傳輸協(xié)議說明 UDP 協(xié)議采用的是面向無連接的通信方式,它在通信前不需要提前建立通信鏈路,它是異步的,數(shù)據(jù)的發(fā)送比較迅速,不需要等待應(yīng)答信號。另外,使用 UDP 傳輸數(shù)據(jù)時對數(shù)據(jù)是有大小限制的,每個被傳輸?shù)陌仨毾薅ㄔ?64KB 之內(nèi) [6]。 Java 提供了Socket 的相關(guān)包, Java 中 Socket 的設(shè)計采用了面向?qū)ο蟮乃悸?,模擬了 TCP 協(xié)議里客戶端和服務(wù)器端的通信流程,并封裝了創(chuàng)建連接、發(fā)送接收數(shù)據(jù)流、斷開連接等方法。 針對一個特定的連接和通信過程,服務(wù)器和客戶端程序里都有一個 Socket 對象,我