【正文】
信息。不難看出,服務(wù)器端的任務(wù)并不復(fù)雜。 ( 2) 服務(wù) 器端應(yīng)當(dāng)是一個信息發(fā)送中心,所有客戶端的信息都傳到服務(wù)器端,由服務(wù)器端根據(jù)要求分發(fā)信息。簡單分析一下兩個方面所要完成的任務(wù),對設(shè)計這個程序來說,等于完成了一半。 在后臺管理系統(tǒng),可以到對用戶進(jìn)行增刪改查,查看在線用戶,和踢用戶下線。 服務(wù)器端應(yīng)當(dāng)建立一個 ServerSocket,并且不斷進(jìn)行偵聽是否有客戶端連接或者斷開連接 (包 括判斷沒有響應(yīng)的連接超時 )。 8 第 3 章 需求分析 系統(tǒng)基本功能描述 客戶端可以實現(xiàn)注冊,登錄,即時聊天,相互之間收發(fā)文件,發(fā)送截圖,查看歷史聊天記錄等功能。這種模式的優(yōu)點充分利用了客戶機(jī)的性能,使計算能力大大提高;另外,由于客戶機(jī)和服務(wù)器之間的通訊是通過網(wǎng)絡(luò)協(xié)議進(jìn)行的,是一種邏輯的聯(lián)系,因此物理上在客戶機(jī)和服務(wù)器兩端是易于擴(kuò)充的。 客戶機(jī)和服務(wù)器之間通過相應(yīng)的網(wǎng)絡(luò)協(xié)議來進(jìn)行通訊。相對于以前的模式, C/S 模式最大 的改進(jìn)是不再把所有軟件都裝進(jìn)一臺計算機(jī),而是把應(yīng)用系統(tǒng)分成兩個不同的角色和兩個不同的地位:一般在運算能力較強(qiáng)的計算機(jī)上安裝服務(wù)器端程序,而在一般的 PC 上安裝客戶機(jī)程序。 二、 Socket 類向程序員屏蔽了服務(wù)器和客戶端之間的物理硬件指標(biāo)和底層的連 7 接方式,所以我們在使用 Socket 類開發(fā)網(wǎng)絡(luò)程序時,可以簡單地調(diào)用其提供的方法來傳輸數(shù)據(jù),而不必關(guān)心數(shù)據(jù)流的傳輸和接收方式。事實上, Java 采用 Socket 包是對 TCP 協(xié)議的進(jìn)一步抽象,更向程序員屏蔽了 TCP 通信的細(xì)節(jié),具體表現(xiàn)在以下兩方面 。所以,使用 Socket 包,程序員不僅可以創(chuàng)建客戶端和服務(wù)器之間的通信信道,還能實現(xiàn)發(fā)送和接收數(shù)據(jù)流等的網(wǎng)絡(luò)通信功 能 [8]。 ( 3) Java Socket(套接字 )說明 在 Java 語言里,使用 Socket(套接字 )模型來封裝網(wǎng)絡(luò)傳輸?shù)木唧w動作。優(yōu)點是發(fā)送速度較快,但是在數(shù)據(jù)的一致性方面不好,在網(wǎng)絡(luò)差的情況下,容易丟失數(shù)據(jù)包 。在網(wǎng)絡(luò)不是十分理想的情況下,速度犧牲很大,但是卻能夠保證所傳輸?shù)臄?shù)據(jù)的正確性。 TCP 協(xié)議中數(shù)據(jù)傳輸采取的是同步方式,當(dāng)數(shù)據(jù)發(fā)送到對方時,必須等待接收方的應(yīng)答信號后才能繼續(xù)下一次的發(fā)送工作,即通常所講的三次握手。本系統(tǒng)在通訊功能實現(xiàn)中采用了 TCP傳輸協(xié)議,直接使用的 Java API提供的類 Socket和 Serversocket 等來實現(xiàn)。目前在網(wǎng)絡(luò)編程方面最常用的是 TCP/IP 和 UDP 通信協(xié)議。 網(wǎng)絡(luò)通信協(xié)議簡介 網(wǎng)絡(luò)通信協(xié)議為連接不同操作系統(tǒng)和不同硬件體系結(jié)構(gòu)的互聯(lián)網(wǎng)絡(luò)提供通信支持,是一種網(wǎng)絡(luò)通用語言。 ORACLE 數(shù)據(jù)庫是目前世界上使用最為廣泛的 數(shù)據(jù)庫管理系統(tǒng) ,作為一個通用的數(shù)據(jù)庫系統(tǒng),它具有完整的 數(shù)據(jù)管理 功能;作為一個關(guān)系數(shù)據(jù)庫,它是一個完備關(guān)系的產(chǎn)品;作為分布式數(shù)據(jù)庫它實現(xiàn)了 分布式處理 功能。 ORACLE 數(shù)據(jù)庫系統(tǒng) 是美國 ORACLE 公司( 甲骨文 ) 提供的以 分布式數(shù)據(jù)庫 為核心的一組軟件產(chǎn)品,是目前最流行的客戶 / 服務(wù)器(CLIENT/SERVER)或 B/S 體系結(jié)構(gòu) 的數(shù)據(jù)庫之一??梢哉f Oracle 數(shù)據(jù)庫系統(tǒng)是目前世界上流行的關(guān)系數(shù)據(jù)庫管理系統(tǒng),系統(tǒng)可移植性好、使用方便、功能強(qiáng),適用于各類大、中、小、微機(jī)環(huán) 境。是 甲骨文公司 的一款 關(guān)系數(shù)據(jù)庫管理系統(tǒng) 。 MyEclipse 全面支持 Eclipse 開源平臺的所有功能特性,如果你熟悉 Eclipse,那么你能夠輕松地上手 MyEclipse,包括熟悉的 Eclipse 快捷鍵,而且使用 MyEclipse 完成某項任務(wù)往往要比使用 Eclipse 更加快速、簡單 [5]。MyEclipse 也全面支持各種主流的第三方框架,讓你能夠快速高效地進(jìn)行開發(fā)工作。據(jù)官方介紹,諸如三星、 IBM、戴爾、惠普、花旗集團(tuán)、西門子、斯坦福大學(xué)、波音公司等知名機(jī)構(gòu)均使用 MyEclipse 進(jìn)行 Java、JavaEE 開發(fā), 80%以上的全球財富 100 強(qiáng)企業(yè)均是 MyEclipse 的用戶。 Java 語言的特點包括 :簡單、面向?qū)ο?、分布性、可移植性、解釋型? 安全性、健壯性、多線程、高性能、動態(tài)。編譯只進(jìn)行一次,而解釋在每次運行程序時都會進(jìn)行。 Java 語言編寫的程序既是編譯型的,又是解釋型的。Java 非常適合于企業(yè)網(wǎng)絡(luò)和 Inter 環(huán)境,并且已成為 Inter 中最具影響力、最受歡迎的編程語言之一。同時, Java也是一種跨平臺的程序設(shè)計語言 [3]。 系統(tǒng)設(shè)計的相關(guān)技術(shù) 本即時聊天系統(tǒng)是基于 Java 語言的,采用 C/S 結(jié)構(gòu),使用 MySQL 存儲用戶信息,采用 JDBC 技術(shù)對其進(jìn)行增刪改查,使用套接字來實現(xiàn)網(wǎng)絡(luò)上客戶和服務(wù)器之間的連接,同時采用 Hibernate 框架來管理 Java 類到數(shù)據(jù)庫表的映射,并且提供數(shù)據(jù)查詢和獲取數(shù)據(jù)的方法。 方案的確定 根據(jù)以上的分析和總結(jié),很顯然方案一更適合我們的完成系統(tǒng)設(shè)計。如果要實現(xiàn) inter 上通訊,理論上只需要將服務(wù)器端運行在一個有固定 IP 的公網(wǎng)上就可以。 操作可行性 一方面可以讓本地機(jī)同時作為客戶端和服務(wù)器實現(xiàn)一臺機(jī)器 上的即時通訊。采用 JDBC 技術(shù)對其進(jìn)行增刪改查,使用套接字來實現(xiàn)網(wǎng)絡(luò)上客戶和服務(wù)器之間的連接,同時采用 Hibernate 框架來管理 Java 類到數(shù)據(jù)庫表的映射(包括從 Java數(shù)據(jù)類型到 SQL 數(shù)據(jù)類型的映射),并且提供數(shù)據(jù)查詢和獲取數(shù)據(jù)的方法。 。 MySQL 作為一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng),將數(shù)據(jù)保存在不同的表中,是一個安全度高、可靠性好的并且能夠支持面向?qū)ο笤O(shè)計的數(shù)據(jù)庫系統(tǒng)。同時,本系統(tǒng)能夠讓人們的交流更加便 捷,其帶來的間接效益遠(yuǎn)遠(yuǎn)超過了其開發(fā)成本,所以在經(jīng)濟(jì)上本系統(tǒng)的設(shè)計是具有完全的可行性的。 經(jīng)濟(jì)可行性 4 計算機(jī)網(wǎng)絡(luò)已經(jīng)普及,因此在網(wǎng)絡(luò)設(shè)備上不需要進(jìn)行大的投入。因此,在每一個系統(tǒng)開發(fā)之前,都必須要進(jìn)行可行性分析,這樣就可以減少軟件開發(fā)所帶來的風(fēng)險,也大大的避免了在物力、人力和財力上的浪費 [2]。 而 MYSQL 非常小,一般幾十兆,對主機(jī)的內(nèi)存占用也不是 很大,安裝方便。這樣就大大簡化了客戶端電腦載荷,減輕了系統(tǒng)維護(hù)與升級的成本和工作量,降低了用戶的總體成本( TCO)。 方案二: B/S 模式 +MyBatics+Mysql B/S( Browser/Server)結(jié)構(gòu)即瀏覽器 和服務(wù)器結(jié)構(gòu),它是隨著 Inter 技術(shù)的興起,對 C/S 結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。 而且 Hibernate 對數(shù)據(jù)庫進(jìn)行的是重量級的封裝,對整個運行速度不會很慢。 方案一: C/S 模式 +Hibernate+Oracle C/S( Client/Server)結(jié)構(gòu),即大家熟知的客戶機(jī)和服務(wù)器結(jié)構(gòu),其優(yōu)點是能充分發(fā)揮客戶端 PC 的處理能力,很多工作可以在客戶端處理后再提交給服務(wù)器。在數(shù)據(jù)庫方面, Hibernate 和 MyBatics 都有著很強(qiáng)大的功能,而且 Mysql 和 Oracle 也有著不同的優(yōu)缺點。 3 第 2 章 方案論證 方案分析 經(jīng)過認(rèn)真的 研究與 分析, 同時 綜合各種計算機(jī)高級語言的特征和適應(yīng)范圍,最終決定選擇純面向?qū)ο蟮?Java 語言來完成 即時聊天系統(tǒng) 的設(shè)計 。 論文的設(shè)計主要采用了兩種研究方法:一是文獻(xiàn)資料研究的方法。本系統(tǒng) 不比商業(yè)系統(tǒng),沒有考慮過多的復(fù)雜性,主要實現(xiàn)了基本的通訊功能,以滿足學(xué)習(xí)研究之用。 對于企業(yè)用戶而言,能夠?qū)崿F(xiàn)建立員工交流平臺,統(tǒng)一信息發(fā)布平臺,減少運營成本,促進(jìn)企業(yè)辦公效率。我們的生活中溝通無處不在,即時聊天系統(tǒng)這類廣泛使用的基礎(chǔ)軟件的研究開發(fā)意義深遠(yuǎn)。雖然即時聊天系統(tǒng)設(shè)計的初衷是聊天,但正如前面所說,其功能已經(jīng)超出了聊天的范疇,隨著企業(yè)即時通訊工具( EIM)的出現(xiàn), IM 系統(tǒng)更是成了企業(yè)信息發(fā)布、資源共享、問題探討和網(wǎng)絡(luò)營銷的一把利器。隨著計算機(jī)軟件、計算機(jī)網(wǎng)絡(luò)和移動通信技術(shù)的發(fā)展融合,集方便、廉價、快捷、實時等優(yōu)點于一身的即時聊天系統(tǒng)可以說是繼電子郵件、萬維網(wǎng)之后,互聯(lián)網(wǎng)上最具有殺傷力的應(yīng)用。 開發(fā)目的和意義 在當(dāng)今社會,不管是個人用戶還是企業(yè)用戶,對溝通的 需求總是在不斷地發(fā)展。這些軟件本身功能也越來越豐富,遠(yuǎn)遠(yuǎn)超出了單純的即時聊天系統(tǒng)的范疇。不少廠商分 別推出了自己的 IM,如騰訊 、阿里旺旺、新浪 UC、移動飛信等,這些都是我們所熟悉的 PC 端的即時通訊軟件。 國內(nèi)發(fā)展現(xiàn)狀 國內(nèi)在應(yīng)用層上的網(wǎng)絡(luò)應(yīng)用軟件目前發(fā)展異常的火爆,因為我國有著網(wǎng)絡(luò)應(yīng)用 2 的最大的市場。 ICQ 幾乎是國際上通用的即時通信工具,由于在我國它的應(yīng)用不是很廣,所以其原理也很少被介紹。微軟,想用同樣的辦法搞跨對手,因此它拿出了 Visual c來對抗 Java。 MS 不擇手段的想打跨網(wǎng)景,可見其對網(wǎng)絡(luò)的重視。但是,其捆綁的 msn,無論從功能上,還是技術(shù)上來說,都不算是非常先進(jìn)的。 國內(nèi)外發(fā)展現(xiàn)狀 國外發(fā)展現(xiàn)狀 當(dāng)今國際上對網(wǎng)絡(luò)通信系統(tǒng)研究的較好的公司有:思科, Sun, Ms 等公司,思科主要研究的是底層的傳輸; MS, Sun 公司研究的是應(yīng)用層。本系統(tǒng)的主要特性是能動態(tài)、實時的完成信息的傳遞,同時具有高效的交互性,更有效的處理客戶請求,同時維護(hù)和更新也更加簡易。 本課題研究的就是基于 Java 語言的即時聊天系統(tǒng)。而到了上世紀(jì)末,隨著計算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的高速發(fā)展,誕生了一種新型交流方式—— 即時聊天系統(tǒng) 。在人類漫長的發(fā)展過程中,交流的方式也在不斷更新變化。socket 。s information, and be able to refresh the user list. Instant messaging system design mainly by the client and the server connection is established, which makes the server to municate with the client39。即時聊天系統(tǒng)采用 myeclipse 為基本開發(fā)環(huán)境和 java 語言進(jìn)行編寫,通過不斷修正和改進(jìn)初始原型系統(tǒng),直至此系統(tǒng)完全可行為止。同時,開發(fā)中利用了計算機(jī)網(wǎng)絡(luò)編程的基本理論知識,如 TCP/IP 協(xié)議、客戶端 /服務(wù)器端模式( Client/Server 模式)、網(wǎng)絡(luò)編程的設(shè) 計方法等。即時聊天系統(tǒng)客戶端設(shè)計主要通過與服務(wù)器建立連接,從而使服務(wù)器端與客戶端的信息進(jìn)行交流。 即時聊天系統(tǒng) 開發(fā)主要包括兩個方面:即時聊天系統(tǒng)服務(wù)器端設(shè)計、即時聊天系統(tǒng)客戶端設(shè)計。 本科畢業(yè)設(shè)計(論文) 基于 Java 即時聊天系統(tǒng)的設(shè)計與實現(xiàn) 學(xué) 號: 05 學(xué)生姓名: 指導(dǎo)教師: 所在學(xué)院:計算機(jī)科學(xué)技術(shù)學(xué)院 所學(xué)專業(yè):計算機(jī)科學(xué)與技術(shù)專業(yè) 2020 年 6 月 I 摘 要 伴隨著互聯(lián)網(wǎng)的高速發(fā)展,產(chǎn)生了一系列與互聯(lián)網(wǎng)相關(guān)的新鮮事物,即時聊天系統(tǒng)就是其中最具代表性的產(chǎn)物。即時聊天系統(tǒng)經(jīng)過不斷地發(fā)展,憑借其迅速、便捷、即時的特點,逐漸成為一種重要的信息交流工具,受到越來越多的網(wǎng)民的 青睞。即時聊天系統(tǒng)服務(wù)器端設(shè)計主要通過 Socket 套接字建立服務(wù)器,服務(wù)器能夠讀取和轉(zhuǎn)發(fā)從客戶端發(fā)來的信息,并且能夠刷新用戶列表。在這里,網(wǎng)絡(luò)通信機(jī)制原理得到了運用,通過直接繼承 Thread 類來建立多線程。在網(wǎng)絡(luò)編程中利用流來實現(xiàn)信息的交換,從而讀取和發(fā)送信息。 關(guān)鍵詞: 即時聊天系統(tǒng); 套接字; Java II Abstract Along with the highspeed development of Inter, produced a series of new things related to the Inter, instant messaging system is the product of one of the most representative. Instant messaging system through constant development, with its fast, convenient, realtime characteristics, being an important munication tool, get the favour of a growing number of Inter users. Instant messaging system development mainly includes two aspects: instant messaging system server client, instant messaging system design. Instant messaging system design mainly through the Socket server Socket server, the server can read and forward from the client39。s information. Here, the p