版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 學 年 論 文</b></p><p><b> 目 錄</b></p><p><b> 摘要1</b></p><p> Abstract2</p><p><b> 第一章 緒論1</b></p&
2、gt;<p> 1.1 課題背景1</p><p> 1.2 研究現狀1</p><p> 1.3 本文的主要工作2</p><p> 1.4開發(fā)平臺及環(huán)境介紹2</p><p> 第二章 系統(tǒng)分析3</p><p><b> 2.1功能要求3</b><
3、;/p><p> 2.2系統(tǒng)結構圖3</p><p> 2.3 性能要求4</p><p> 第三章 系統(tǒng)設計6</p><p> 3.1 數據庫設計6</p><p> 3.2 服務器端軟件結構7</p><p> 3.3 客戶端軟件結構13</p><
4、;p> 3.4 測試運行16</p><p><b> 總結17</b></p><p><b> 參考文獻18</b></p><p><b> 摘 要</b></p><p> 隨著互聯(lián)網的快速發(fā)展,網絡聊天工具已經作為一種重要的信息交流工具,受到越來
5、越多的網民的青睞。目前,出現了很多非常不錯的聊天工具,其中應用比較廣泛的有Netmeeting、騰訊QQ、MSN-Messager等等。該系統(tǒng)開發(fā)主要包括一個網絡聊天服務器程序和一個網絡聊天客戶程序兩個方面。前者通過Socket套接字建立服務器,服務器能讀取、轉發(fā)客戶端發(fā)來信息,并能刷新用戶列表。后者通過與服務器建立連接,來進行客戶端與客戶端的信息交流。其中用到了局域網通信機制的原理,通過直接繼承Thread類來建立多線程。開發(fā)中利用了
6、計算機網絡編程的基本理論知識,如TCP/IP協(xié)議、客戶端/服務器端模式(Client/Server模式)、網絡編程的設計方法等。在網絡編程中對信息的讀取、發(fā)送,是利用流來實現信息的交換,其中介紹了對實現一個系統(tǒng)的信息流的分析,包含了一些基本的軟件工程的方法。經過分析這些情況,該局域網聊天工具采用Eclipse為基本開發(fā)環(huán)境和java語言進行編寫,首先可在短時間內建立系統(tǒng)應用原型,然后,對初始原型系統(tǒng)進行不斷修正和改進,直到形成可行系統(tǒng)&
7、lt;/p><p><b> Abstract</b></p><p> With the rapid development of Internet, network chat tool has been used as an important tool for information exchange, a growing number of Internet
8、users of all ages. At present, there are many very good chat tools, which is widely used in Netmeeting, Tencent QQ, MSN-Messager and so on. The system includes the development of a network chat server program and a netwo
9、rk chat client program in two aspects. The former through the Socket socket establish a server, server can read, forwarded from clie</p><p><b> 第一章 緒論</b></p><p><b> 1.1 課題背景
10、</b></p><p> 隨著互聯(lián)網逐步普及,人們的生活和工作也越來越離不開信息網絡的支持, 而聊天室是人們最常見, 最直接的網上交流的方式。本聊天系統(tǒng)以聊天交流為主,為廣大用戶提供一個借助網絡進行人際交往的平臺,也是網絡與現實最貼近的實用型網站。本文所介紹的C/S聊天系統(tǒng)是基于開放的JAVA應用程序開發(fā)設計的,其主要特性是能動態(tài)、實時的完成信息的傳遞,且具有高效的交互性,更有效的處理客戶請求,易
11、于維護和更新,其運行所需環(huán)境及其工作流程和各個功能控件的工作原理將在本文依次介紹,并且文中提供了部分程序源代碼。本文中將討論一種基于Socket的即時通訊工具的設計與實現方法。 </p><p> 1.2 研究現狀 </p><p> 即時通訊軟件屬于娛樂型軟件,它已經是眾多網民的必備軟件。即時通訊軟件是通過即時通訊技術來實現在線聊天、交流的軟件。目前有2種架構形式,1、一種是C
12、/S架構,采用客戶端/服務器形式,用戶使用過程中需要下載安裝客戶端軟件,典型的代表有:QQ、百度HI 、Skype QQ VS GU、Gtalk、新浪UC、MSN等;2、采用B/S架構,即瀏覽器/服務端形式,這種形式的即時通訊軟件,直接借助互聯(lián)網為媒介、客戶端無需安裝任何軟件,既可以體驗服務器端進行溝通對話,一般運用在電子商務網站的服務商,典型的代表有Websitelive 、53KF、live800等。</p><
13、;p> 1.3 本文的主要工作</p><p> 本文主要工作是設計一個基于WINDOWS平臺的即時通訊工具,然后闡述本軟件的功能、并詳細闡述開發(fā)本軟件所用的相關技術,具體分析本軟件的各個模塊的功能及實現方法,說明本軟件的設計思想及方法。</p><p> 1.4開發(fā)平臺及環(huán)境介紹</p><p> 本系統(tǒng)采用jdk1.6平臺開發(fā),JDK(Java D
14、evelopment Kit)是Sun Microsystems針對Java開發(fā)員的工具。自從Java推出以來,JDK已經成為使用最廣泛的Java SDK。JDK 是整個Java的核心,包括了Java運行環(huán)境,Java工具和Java基礎的類庫。。從SUN的JDK5.0開始,提供了泛型等非常實用的功能,其版本也不斷更新,運行效率得到了非常大的提高。本系統(tǒng)正是采用了比較新的版本來開發(fā)。由于jdk對電腦硬件配置要求不是很高,所以只要內存在25
15、6M以上配備了windows的計算機就可以流暢的使用jdk1.6。</p><p><b> 第二章 系統(tǒng)分析</b></p><p><b> 2.1功能要求</b></p><p> ?。?)用戶端之間的信息發(fā)送,本程序需要實現的最基本的功能</p><p> ?。?)在線用戶主機名列表的維
16、護。</p><p> ?。?)在C/S模式中,服務器與客戶端是相互依賴的。在客戶端啟用以后,需要查看服務器端是否在線,服務器在線才能正常使用客戶端,如果服務器不在線,則在檢測一定次數以后自動退出客戶端程序。在使用過程中,客戶端在指定時間內未向服務器端發(fā)送信息的,服務器認為客戶端下線;客戶端在一定時間內未收到服務器端信息的,認為服務器已經下線,則提示用戶并建議退出,在用戶一定時間后沒有退出的則自動關閉客戶端程序。
17、</p><p><b> 2.2系統(tǒng)結構圖</b></p><p> 如圖圖2-1,采用三層C/S模式,使用Java語言開發(fā),后臺數據庫采用Access??蛻糸g通訊使用UDP協(xié)議,客戶端與服務器之間的通訊采用TCP/IP協(xié)議。</p><p> 圖2-1 聊天系統(tǒng)結構圖</p><p><b> 2.
18、3 性能要求</b></p><p> 首先要求程序要可靠,可以應付種種由于系統(tǒng)問題產生的錯誤,比如初始網絡失敗,對方突然下線等。要求提前設想到類似的盡可能多的可能發(fā)生的事件,做出相應的應對措施,并向用戶提交簡單易懂清晰明白的提示信息。</p><p> 程序要有良好的容錯性,當用戶進行非法操作時或者系統(tǒng)本身出現問題時要能以最好的方式退出程序,避免發(fā)生程序假死現象。<
19、;/p><p> 開發(fā)文檔要有好的易理解性,如果系統(tǒng)又要交由別人接手開發(fā),或者自己由于種種原因需要進行二次開發(fā),那么要保證以后能夠清晰的理解整個系統(tǒng)的設計思路以及實現細節(jié)。</p><p> 要求程序對所運行之系統(tǒng)的硬件條件要求盡可能低,運行時內存占用盡可能小,響應速度要盡可能快。并且不發(fā)生內存泄漏之類影響系統(tǒng)運行的錯誤事件。并且要求易于維護及擴展。所以應該采用模塊化開發(fā),各個模塊之間不要
20、有太多的聯(lián)系,以免維護困難。</p><p><b> 第三章 系統(tǒng)設計</b></p><p><b> 3.1 數據庫設計</b></p><p> 本軟件的服務器端需要用到數據庫,二用戶端則無需安裝任何數據庫。這里選擇的數據庫平臺暫時定為Access,數據庫文件為MyQQ.mdb,采用JDBC-ODBC橋連接,
21、ODBC數據源名稱也為myqq。在數據庫中,共有三張表,每張表的表名以及字段描述如下:</p><p><b> FRIEND表</b></p><p> 該表記錄了每個用戶所擁有的好友號碼,字段說明如表3.1所示。</p><p><b> 表3-1</b></p><p><b>
22、; QQNUM表</b></p><p> 該表記錄了所有合法的賬號,字段說明如表3-2所示。</p><p> USER_INFO表</p><p> 3.2 服務器端軟件結構</p><p> 客戶與服務器的通信通過Socket(TCP/IP)的方式連接。服務器采用多線程方式滿足多用戶的請求,默認情況下,每個線程處理
23、一個用戶的請求。并通過創(chuàng)建一個ServerSocket對象監(jiān)聽來自客戶的連接請求,默認端口為5638,然后無限循環(huán)調用accept()方法介紹客戶程序的連接。服務器通過JDBC-ODBC與后臺數據庫連接。</p><p> 服務器的主類是ServerForm,此類啟動后是一個圖形界面,它能完成一些功能:</p><p><b> 啟動Server;</b><
24、/p><p> 以列表的形式顯示上線用戶的信息和上線的總人數;</p><p> 可以將某一用戶斷開與服務器的連接,并釋放占用的服務器資源;</p><p> 設置一文本區(qū)域,顯示服務器的工作日志,當程序退出時,能將這些日志寫入文件中,文件名以“日期+時間”命名。</p><p> 服務器端程序的功能結構如圖3-1所示。</p>
25、;<p> 圖3-1服務器端程序的功能結構示意圖</p><p> 服務器端程序運行界面如圖3-2所示。</p><p> 圖3-2 服務器端程序運行界面</p><p> 為了完成這些功能,需要用到下列基本方法。這里以偽代碼的形式描述這些方法的基本流程。</p><p> 處理注冊新用戶的方法:</p>
26、<p> registerNewUser(){</p><p><b> 獲得數據庫連接對象</b></p><p> 讀取客戶端用戶的注冊信息</p><p><b> 直線SQL語句</b></p><p> 返回注冊用戶的QQ號碼</p><p>
27、 向客戶端發(fā)送用戶的QQ號碼</p><p> 向客戶端發(fā)送結束信號</p><p><b> }</b></p><p> 處理用戶登錄的方法:</p><p><b> Login(){</b></p><p><b> 獲得數據庫連接對象</
28、b></p><p><b> 讀取用戶名和密碼</b></p><p> 執(zhí)行SQL語句并判斷是否為合法用戶</p><p><b> If(是合法用戶)</b></p><p><b> 注冊用戶的IP地址</b></p><p>&l
29、t;b> 查找好友</b></p><p><b> 返回成功信息</b></p><p><b> else</b></p><p><b> 返回登錄失敗的消息</b></p><p><b> }</b></p>
30、;<p> 處理用戶查找其他用戶方法:</p><p> queryUser(){</p><p><b> 獲得數據庫連接對象</b></p><p> 讀取用戶端發(fā)送的查找信息</p><p><b> 執(zhí)行SQL語句</b></p><p>&l
31、t;b> If(找到用戶)</b></p><p><b> 返回用戶的信息</b></p><p><b> else</b></p><p><b> 返回錯誤信息</b></p><p><b> }</b></p&
32、gt;<p> 處理用戶添加好友方法:</p><p> addFriend(){</p><p><b> 獲得數據庫連接對象</b></p><p> 結束客戶端發(fā)來的客戶及其好友號碼</p><p> 將客戶和好友的號碼插入點FRIEND表中</p><p><
33、b> If(執(zhí)行成功)</b></p><p> 向客戶端發(fā)送成功信息</p><p><b> else</b></p><p> 向客戶端發(fā)送失敗信息</p><p><b> }</b></p><p> 處理用戶刪除好友方法:</p
34、><p> deleteFriend(){</p><p><b> 獲得數據庫連接對象</b></p><p> 接受客戶端發(fā)來的客戶及其好友的號碼</p><p> 執(zhí)行SQL語句(在FRIEND表中刪除此信息)</p><p><b> If(執(zhí)行成功)</b>&
35、lt;/p><p> 向客戶端發(fā)送成功信息</p><p><b> else</b></p><p> 向客戶端發(fā)送失敗信息</p><p><b> }</b></p><p> 處理用戶更新自己信息的方法:</p><p> updete
36、OwnInfo(){</p><p><b> 獲得數據庫連接對象</b></p><p> 讀取客戶端發(fā)送的信息</p><p><b> 將此信息寫入數據庫</b></p><p><b> If(執(zhí)行成功)</b></p><p> 向客
37、戶端發(fā)送成功信息</p><p><b> else</b></p><p> 向客戶端發(fā)送失敗信息</p><p><b> }</b></p><p> 處理用戶下線的方法:</p><p> loginOut(){</p><p>&l
38、t;b> 獲得數據庫連接對象</b></p><p><b> 獲得客戶端號碼</b></p><p> 將用戶的在線狀態(tài)改為下線并清空其IP地址</p><p><b> If(執(zhí)行成功)</b></p><p> 向客戶端發(fā)送成功信息</p><p
39、><b> else</b></p><p> 向客戶端發(fā)送失敗信息</p><p><b> }</b></p><p><b> 服務器類框架</b></p><p> public class Server implements Runnable{<
40、/p><p><b> 定義套接口</b></p><p><b> 定義輸入輸出流</b></p><p> public Server(Socket s,……){</p><p><b> 獲得傳遞參數</b></p><p><b>
41、 創(chuàng)建輸入輸出流</b></p><p><b> }</b></p><p> public void run(){</p><p> while(bool){</p><p> 獲得客戶端的輸入字符串</p><p> 判斷字符串的命令類型</p><
42、;p> 根據命令調用相應的處理方法</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 3.3 客戶端軟件結構</p><p> 客戶通過Socket建立于
43、服務器的連接。服務器建立輸入輸出流,然后雙方通過該輸入輸出流來相互傳遞信息,一旦受到客戶端的連接請求,服務器accept()方法返回一個新建的Socket對象??蛻舳巳缓笙蚍掌靼l(fā)送消息,例如注冊、登錄、查找好友等,服務器受到來自客戶的請求后,針對不同的消息處理請求,做出不同的響應。</p><p> 雖然UDP協(xié)議不是可靠的協(xié)議,但是對于網絡聊天程序而言,可靠性并不太重要,UDP具有通訊速度快的優(yōu)點,所以客戶
44、間發(fā)送信息采用UDP協(xié)議。用戶登錄時,通過類DatagramPacket和DatagramSocket創(chuàng)建UDP包,其中包含了本地介紹端口以及發(fā)送端口,通過取得好友的IP地址向好友發(fā)送消息和接受消息。當用戶通過UDP受到消息后,可以通過DatagramPacket的方法InetAddress getAddress()得到對方的IP地址,通過對好友列表比較以判斷是誰并提示用戶受到某某的消息,然后用戶選擇該用戶查看消息,如果好友列表沒有該人
45、就顯示受到陌生人的消息。</p><p> 客戶端與服務器交互的流程如圖3-3所示。</p><p> 圖3-3 客戶端與服務器端交互流程</p><p> 客戶端的程序框架如圖3-4所示。</p><p> 圖3-3 客戶端程序框架</p><p><b> 登錄模塊</b></
46、p><p> 登錄模塊是本軟件客戶端執(zhí)行的第一個模塊。用戶在界面上輸入自己的賬號和密碼,必要時還需要輸入服務器的IP地址和端口號。程序用此來與服務器建立連接,告訴服務器等去登錄的賬號和密碼。服務器收到后,讀取數據庫中的信息,然后與用戶輸入的信息比較,如果相同,就向客戶返回成功消息并將其Status字段設為1,表示上線及注冊其IP地址,否則返回錯誤標志。</p><p><b>
47、主界面</b></p><p> 如果登錄成功,登錄程序將打開主程序窗口。主程序將向服務器請求讀取好友名單,服務器收到該請求,開始讀取數據庫中的FRIEND表,得到好友的號碼后,再在USER表中讀取好友資料,然后向客戶端發(fā)送這些信息,客戶收到后就在主窗口顯示好友,例如,頭像昵稱等。該界面主要有5個功能:</p><p><b> 更新功能</b><
48、;/p><p><b> 查看基本信息</b></p><p><b> 添加好友</b></p><p><b> 刪除好友</b></p><p><b> 聊天功能</b></p><p><b> 注冊模塊&
49、lt;/b></p><p> 在登錄窗口中單擊“注冊”按鈕,就可以進入注冊窗口。當服務器收到用戶的注冊請求,便開始接受客戶傳遞的信息,諸如客戶的昵稱、性別、籍貫、頭像、個人資料等。接受完畢后,便與后臺數據庫連接,然后向數據庫添加記錄。如果成功,便向客戶返回其QQ號碼,并在數據庫中注冊用戶的IP地址,然后更新其Status為1,即用戶在線。客戶收到服務器返回的信息后便打開主程序窗口,并同時開始創(chuàng)建UDP以
50、便在用戶之間建立聯(lián)系。</p><p><b> 3.4 測試運行</b></p><p> 用二臺機器通過路由器構成一個局域網,進行正確的網絡配置,兩臺臺機器上都安裝的是WINDOWS操作系統(tǒng),經過測試可正常運行。</p><p><b> 總結</b></p><p> 本學年論文實現了
51、簡單的實時聊天功能,經過細心的調試和排錯解決了絕大部分的問題。但幾乎每一個計算機程序都會有這樣那樣的不足,尤其是未經過精心維護的非商業(yè)軟件。本聊天系統(tǒng)程序在調試過程中,尤其在開始初期,感覺邏輯復雜,難以控制,因此至今還有許多未能解決的缺陷。</p><p> 目前本聊天系統(tǒng)還有待完善的功能如下:</p><p> (1)沒有實現文件發(fā)送功能;</p><p>
52、 (2)沒有實現語音通信功能;</p><p> ?。?)沒有實現視頻功能。</p><p> 盡管學年論文在此就完成了,但是對于上述的缺陷,本人還會不斷對聊天系統(tǒng)進一步的完善它,期望在今后的日子里憑借自身的技術把系統(tǒng)做成一套功能完善的聊天系統(tǒng)。</p><p> 因為綜合性的軟件對開發(fā)技術要求較高,但是限于我的知識水平,文中的不足和錯誤在所難免,敬請李老師指點
53、和更正,在此我先對李老師表示謝意。</p><p><b> 附:本文代碼下載</b></p><p> http://download.csdn.net/detail/anjianglong2008/8690579</p><p><b> 參考文獻</b></p><p> [1]劉新.
54、Java開發(fā)技術大全.北京:清華大學出版社,2009</p><p> [2]Bruce Eckel.Java編程思想.北京:機械工業(yè)出版社,2007</p><p> [3] 耿祥義.Java課程設計.北京:清華大學出版社,2005</p><p> [4] http://wenku.baidu.com/view/bb073c26ccbff121dd3683
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于java的聊天系統(tǒng)的設計與實現---畢業(yè)論文
- 畢業(yè)論文 基于java即時聊天系統(tǒng)的設計與實現
- 畢業(yè)論文-基于java的聊天系統(tǒng)的設計與實現
- 基于java的聊天系統(tǒng)的設計與實現---畢業(yè)論文
- 基于java即時聊天系統(tǒng)的設計與實現_畢業(yè)論文
- 基于java即時聊天系統(tǒng)的設計與實現_畢業(yè)論文
- 畢業(yè)論文-基于java的聊天系統(tǒng)的設計與實現 (2)
- 基于java的聊天系統(tǒng)的設計于實現——畢業(yè)論文
- 基于java的聊天系統(tǒng)的設計于實現——畢業(yè)論文
- 本科畢業(yè)論文-基于java的聊天系統(tǒng)的設計與實現
- 基于java的聊天室設計與實現畢業(yè)論文
- 基于java的聊天室設計與實現畢業(yè)論文
- 畢業(yè)論文---基于cs架構的java網絡聊天系統(tǒng)的設計與實現
- 畢業(yè)論文---基于cs架構的java網絡聊天系統(tǒng)的設計與實現
- 基于java語言的網絡聊天系統(tǒng)開發(fā)與實現畢業(yè)論文
- 畢業(yè)論文范文——基于java的聊天系統(tǒng)的設計于實現
- 畢業(yè)論文范文——基于java的聊天系統(tǒng)的設計于實現
- android聊天系統(tǒng)畢業(yè)論文--基于android平臺的聊天系統(tǒng)設計與實現
- 基于java即時聊天系統(tǒng)設計與實現-
- 基于java網絡聊天系統(tǒng)畢業(yè)設計論文
評論
0/150
提交評論