版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、本科畢業(yè)論文(設(shè)計(jì)) 論文題目:論文題目: 基于 java 的 icq 系統(tǒng) 學(xué)生姓名: 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 班 級: 計(jì)本 0404 班 學(xué) 號: 指導(dǎo)教師: 完成日期: 20082008 年年 5 5 月月 2020 日日 基于 java 的 icq 系統(tǒng) 內(nèi) 容 摘 要 在網(wǎng)絡(luò)技術(shù)逐漸滲入社會生活各個層面的今天,傳統(tǒng)的通信方式也面臨著改革。借助于遍布 全球的 internet,世界各地的人們通過它可以方便的交流和更好的工作學(xué)習(xí)。采用網(wǎng)絡(luò)通信將是 未來通信發(fā)展的趨勢。因此我們開發(fā)了網(wǎng)絡(luò)通信工具 icq。 本軟件(icq 系統(tǒng))是用 eclipse3.2sql 2000 的組合來開發(fā)
2、,其目的是在網(wǎng)絡(luò)上實(shí)現(xiàn)信息 交流。通過對整個系統(tǒng)的分析后,將設(shè)計(jì)分為:開發(fā)計(jì)劃、需求分析、系統(tǒng)設(shè)計(jì)與分析、編碼、 測試、安裝幾個部分來完成,每個環(huán)節(jié)都有各自的意義與用途,其中系統(tǒng)設(shè)計(jì)與分析尤為重要。 界面設(shè)計(jì)也很通俗,只要對 windows 操作系統(tǒng)熟悉的人都能很容易地使用本軟件。完成編碼通過 多次的軟件測試與確認(rèn)后,確定此系統(tǒng)的可用性和適用性。 關(guān)鍵詞: icq 網(wǎng)絡(luò) 信息交流 system of icq based on java abstract seep into today that society live each level gradually in the network t
3、echnique, the traditional correspondence method also faces the reformation.ask for help from to spread all over the global internet, people of the world-wide locations pass it can then the convenient exchanges studies with the better work.the adoption network correspondence will be a trend that futu
4、re correspond by letter the development. therefore we developped the network correspondence tool icq. this software( the system of icq) is a combination to use the eclipse3.2+ sql 2000 to develop, its purpose realizes on the network information exchanges.pass to the analysis of whole system behind,
5、will design to is divided into:development plan, need analysis, system design and analysis, code, test, install several the part comes to completes, each link has each from of meaning and use, among them system design and analysis particularly for importance.the interface design is too very popular,
6、 as long as can use this software very easily to the person that the operate system of windows is familiar with.completing the coding passes the many software the test and after confirming, make sure this system can use the sex with the applicability. keywords: icq network information exchanges 目 錄
7、序 言.1 一、緒論.2 (一)系統(tǒng)概述.2 1.icq 的構(gòu)成.2 2.icq 的主要指標(biāo)和分析.2 (二)系統(tǒng)的研究意義.3 (三)系統(tǒng)基本內(nèi)容及技術(shù)方案.3 1基本內(nèi)容.3 2主要功能.3 3技術(shù)方案.3 (四)開發(fā)環(huán)境.4 (五)論文各章節(jié)基本內(nèi)容.4 二、系統(tǒng)規(guī)劃 .5 (一)系統(tǒng)調(diào)查分析.5 (二)系統(tǒng)可行性分析.5 1.經(jīng)濟(jì)可行性分析.5 2.技術(shù)可行性分析.5 3.操作可行性分析.7 4.計(jì)劃可行性分析.7 (三)系統(tǒng)需求分析.7 三、 系統(tǒng)設(shè)計(jì) .8 (一)系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì).8 (二)數(shù)據(jù)模塊的流程圖.9 (三)業(yè)務(wù)流圖.9 (四)數(shù)據(jù)庫的設(shè)計(jì).11 1.數(shù)據(jù)庫的需要分析.1
8、1 2.數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì).13 3.數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì).14 (五)系統(tǒng)開發(fā)與環(huán)境確定.14 1.開發(fā)環(huán)境的確定.14 2.系統(tǒng)的運(yùn)行環(huán)境.15 3.系統(tǒng)實(shí)現(xiàn)的若干關(guān)鍵技術(shù).15 四、icq 的主要模塊.19 (一)服務(wù)器程序.19 (二)客戶程序.19 (三)數(shù)據(jù)庫.20 (四)主要的功能實(shí)現(xiàn).20 五、用戶使用手冊 .28 (一)系統(tǒng)功能及運(yùn)行環(huán)境簡介.28 (二)系統(tǒng)運(yùn)行與操作指南.28 六、系統(tǒng)評價(jià) .29 (一)系統(tǒng)主要特色/優(yōu)點(diǎn)介紹.29 1.使用方便.29 2.功能齊全.29 3.技術(shù)先進(jìn).29 4.實(shí)用性好.29 5.可擴(kuò)展性好.29 (二)系統(tǒng)存在不足與改進(jìn)方案.29 (三
9、)畢業(yè)設(shè)計(jì)心得與收獲.30 七、結(jié) 論 .31 致 謝 .32 參考文獻(xiàn) .33 附 錄 .34 序 言 隨著世界互連網(wǎng)和電腦用戶持續(xù)增長的今天,傳統(tǒng)的通信方式也面臨著改革。以前我們 與家人,朋友聯(lián)系時會寫信或者郵寄明信片等等,這樣速度慢而且也不太安全?,F(xiàn)在互聯(lián)網(wǎng) 技術(shù)逐漸滲入社會生活各個層面,網(wǎng)絡(luò)通信工具(icq)也應(yīng)運(yùn)而生。 icq 是一次革命,一個對用戶友好的因特網(wǎng)工具,它隨時通知您誰在線并使您能夠按照 自己的意愿聯(lián)絡(luò)它們。 您將不用再徒勞地在網(wǎng)上查找朋友或伙伴。 icq 為您查找,并在他 們進(jìn)入系統(tǒng)的同一時間通知您。 每次您想和某個具體的人交流都要查尋索引簿的行為不再 必要了。有了 i
10、cq,您可以閑談、發(fā)送信息、文件和 url、玩游戲,或者在網(wǎng)上沖浪時與您 的網(wǎng)友共度時光。 因此,開發(fā)這樣一套 icq 系統(tǒng)成為很有必要的事情,在下面的各章中我們將詳細(xì)講解一 套基于 java 的 icq 系統(tǒng)的開發(fā)過程和所涉及到的問題及解決方法。 一、緒論 java1-3是 sun microsystem 公司的 james gosling 開發(fā)的編程語言。它以 c+為基礎(chǔ), 但是卻是一個全新的軟件開發(fā)語言。java 是一個簡單,面象對象,分布式,解釋性,強(qiáng)壯, 安全,與系統(tǒng)無關(guān),可移植,高性能,多線程和動態(tài)的語言-這是 sun 給 java 的定義。 sun 公司的口號就是網(wǎng)絡(luò)就是計(jì)算機(jī),
11、java 能使所有東西從桌面計(jì)算平穩(wěn)的轉(zhuǎn)變?yōu)榛诰W(wǎng) 絡(luò)的計(jì)算,它是專門為此而建立的,并顯然是為了完成這個任務(wù)而來的。使用 java,我們 可以相對輕松的一天編寫一個有條理的網(wǎng)絡(luò)程序。今天,java 的網(wǎng)絡(luò)功能正在飛躍發(fā)展, 不斷有新的特性增加到這個有價(jià)值的基礎(chǔ)上,javasoft 實(shí)驗(yàn)室正在不斷努力使 java 更加完 善。 (一)系統(tǒng)概述 icq 是英文i seek you 的簡稱,中文意思是我找你。icq 最大的功能就是即時信息交 流,只要記得對方的號碼,上網(wǎng)時可以呼他,無論他在哪里,只要他上網(wǎng)打開 icq,人們就 可以隨時交流。icq 源于以色列特拉維夫的 mirabils 公司。該公司
12、成立于 1996 年 7 月,也 就是在這個時候,互聯(lián)網(wǎng)上最出名,下載使用人數(shù)最多的免費(fèi)軟件 icq 誕生了??赡苁瞧洳?斷增加的用戶和廣闊的前景以及廣泛的應(yīng)用前景和巨大的市場潛力,mirabils 的 icq 最終 被美國在線 aol 收購。由于 icq 的成功,推動了 icq 的本土化,就中文的 icq 而言,現(xiàn)在已 經(jīng)越來越多,比如著名的深圳騰迅公司推出的 oicq(現(xiàn)在由于版權(quán)問題,已改名為 qq2001), 還有由 tom.com 推出的 tomq 等,這些軟件技術(shù)都很好,而且簡單易用,成為中國網(wǎng)民最喜 歡的通信軟件。 1icq 的構(gòu)成 icq 由服務(wù)器程序、客戶程序等部分組成。 (
13、1)服務(wù)器程序 服務(wù)器與客戶間通過套接口 socket(tcp)連接。 (2)客戶程序 客戶通過 socket(inetaddress,port)6建立與服務(wù)器的連接。 2icq 的主要指標(biāo)和分析 icq 的主要指標(biāo)有響應(yīng)時間、精確度、安全性等。這些指標(biāo)決定了 icq 的技術(shù)指標(biāo)。 icq 的技術(shù)指標(biāo)決定了 icq 的開發(fā)是否成功。一個成功的 icq 應(yīng)該具有較快的響應(yīng)時間、較 高的安全性和較高的精確度等。 (1)響應(yīng)時間:一方發(fā)送一條信息,另一方收到該信息的時間差 (2)精確度:一次搜索結(jié)果中符合用戶要求的數(shù)目與該次搜索結(jié)果總數(shù)之比 (3)安全性:通話信息是否易被泄露 (二)系統(tǒng)的研究意義
14、千百年來,書信是人們相互聯(lián)系、溝通信息和聯(lián)絡(luò)感情最主要的方式。歷代文人墨客曾 用錦書、尺素、羽書、飛鴻等許多充滿詩意的詞語來描述書信。書信也是保存歷史、喚起記 憶的一個重要方式。以往留存下來的許多信件,現(xiàn)在都已成為珍貴的歷史文物和研究資料。 進(jìn)入 20 世紀(jì) 90 年代,隨著固定電話、移動電話、傳呼以及互聯(lián)網(wǎng)等更為先進(jìn)快捷的通 訊工具的廣泛使用,信件開始逐漸失去往日的輝煌。 溝通方式的多樣化得益于信息業(yè)在近 10 年來的迅速發(fā)展。目前,信息產(chǎn)業(yè)已經(jīng)成為國 民經(jīng)濟(jì)的一個支柱產(chǎn)業(yè)。此外,通信方式的日益現(xiàn)代化從側(cè)面也反映出中國人生活節(jié)奏前所 未有地加快,工作效率開始得到提高。 在網(wǎng)絡(luò)技術(shù)逐漸滲入社會
15、生活各個層面的今天,傳統(tǒng)的通信方式也面臨著改革,因此我 們開發(fā)了網(wǎng)絡(luò)通信工具 icq。icq 最大的功能就是即時信息交流,只要記得對方的號碼,上 網(wǎng)時可以呼他,無論他在哪里,只要他上網(wǎng)打開 icq,人們就可以隨時交流。借助于遍布全 球的 internet,世界各地的人們通過它可以方便的交流和更好的工作學(xué)習(xí)。采用網(wǎng)絡(luò)通信將 是未來通信發(fā)展的趨勢。 (三)系統(tǒng)基本內(nèi)容及技術(shù)方案 1基本內(nèi)容 本系統(tǒng)是基于 java 的 icq 系統(tǒng),主要是能夠?qū)崿F(xiàn)用戶聊天,用戶注冊,添加好友,刪 除好友,發(fā)送和接受信息等等基本功能 程序設(shè)計(jì)的基本要求是做到界面大方、友好,操作靈活、簡單,功能強(qiáng)大,內(nèi)容詳實(shí), 運(yùn)行速
16、度快,安全性高,穩(wěn)定性好。 2主要功能 本次畢業(yè)設(shè)計(jì)主要完成如下功能: (1)用戶注冊 (2)用戶登錄 (3)添加好友 (4)刪除好友 (5)發(fā)送接受消息 3技術(shù)方案 開發(fā)一套系統(tǒng)早就不是一件新鮮的事了,現(xiàn)在有各種系統(tǒng),有用 java 開發(fā)的,有用 vb 的,還有 php 開發(fā)的,本系統(tǒng)決定采用 java 技術(shù),并結(jié)合 eclipse 和 sql server 數(shù)據(jù)庫進(jìn) 行開發(fā)。 (四)開發(fā)環(huán)境 本系統(tǒng)采用 windows xp professional + eclipse3.2 +jdk1.5+ sql server2000 為設(shè) 計(jì)環(huán)境進(jìn)行開發(fā). 操作系統(tǒng)是 windows xp prof
17、essional,開發(fā)技術(shù)是 java,編程工具是 eclipse3.2,數(shù) 據(jù)庫是 sql server2000。 (五)論文各章節(jié)基本內(nèi)容 最開始是系統(tǒng)的序言,主要是說明本系統(tǒng)的意義、目的、主要研究內(nèi)容 第一章是緒論,在本章內(nèi)對主要是闡述本系統(tǒng)的研究意義,基本內(nèi)容,技術(shù)方案,開發(fā) 環(huán)境等等。 第二章是系統(tǒng)規(guī)劃。主要是對系統(tǒng)的調(diào)查分析,從經(jīng)濟(jì),技術(shù),操作,計(jì)劃方面來說明 本系統(tǒng)的可行性。 第三章是系統(tǒng)設(shè)計(jì)。主要內(nèi)容是系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì),數(shù)據(jù)表等等,本章還包括數(shù)據(jù)模 型的設(shè)計(jì)以及系統(tǒng)的開發(fā)和具體運(yùn)行環(huán)境的確定。 第四章是 icq 的主要模塊。本章詳細(xì)介紹了本系統(tǒng)所包含的三個模塊,服務(wù)器程序模塊
18、, 客戶程序模塊和數(shù)據(jù)庫模塊,介紹模塊的時候同時配有圖片和文字說明。 第五章是用戶使用手冊。主要內(nèi)容有系統(tǒng)功能簡介、運(yùn)行環(huán)境簡介,操作指南是對用戶 如何使用本系統(tǒng)進(jìn)行了詳細(xì)的指導(dǎo)。 第六章是系統(tǒng)評介。主要內(nèi)容是對本系統(tǒng)的特色和優(yōu)點(diǎn)進(jìn)行相關(guān)的介紹,同還還分析了 本系統(tǒng)存在的不足和進(jìn)一步的改進(jìn)方案,最后還對本次設(shè)計(jì)工作進(jìn)行了一次總結(jié)。 論文的最后是結(jié)論,致謝以及參考資料等。 二、系統(tǒng)規(guī)劃 (一一)系統(tǒng)調(diào)查分析 在系統(tǒng)的開發(fā)前期對系統(tǒng)進(jìn)行可行性分析是十分必要的一個環(huán)節(jié),這對于保證資源的合 理使用,避免浪費(fèi)是十分必要的,也是項(xiàng)目一旦開始以后能順利進(jìn)行的必要保證。信息系統(tǒng) 的建設(shè)是一項(xiàng)投資大,時間長的復(fù)
19、雜工程,可行性研究更為必要,也更復(fù)雜,更困難。 “可 行性”是指在當(dāng)前情況下,研制這個信息系統(tǒng)是否有必要,是否具備必要的條件??尚行缘?含義不僅包括可能性,還包括必要性和合理性。 要問到網(wǎng)絡(luò)時代發(fā)展最快的領(lǐng)域,無疑的,答案是通訊。通訊工具的實(shí)時交互、資費(fèi)低 廉等優(yōu)點(diǎn)深受用戶的喜愛,已經(jīng)成為網(wǎng)絡(luò)生活中不可或缺的一部分,比如大家都很熟悉的騰 訊 qq,msn 等。網(wǎng)民們通過即時通信進(jìn)行溝通交流、結(jié)識新朋友、娛樂消遣時間、實(shí)現(xiàn)異地 文字、語音、視頻的實(shí)時互通交流。同時,人們也認(rèn)識到通訊工具能夠帶來極高的生產(chǎn)力, 諸多企事業(yè)單位借助它的使用,來提高業(yè)務(wù)協(xié)同性及反饋的敏感度和快捷度。作為使用頻率 最高的
20、網(wǎng)絡(luò)軟件,通訊軟件已經(jīng)突破了作為技術(shù)工具的極限,被認(rèn)為是現(xiàn)代交流方式的象征。 在開發(fā)的前期進(jìn)行各項(xiàng)調(diào)查的目的是明確系統(tǒng)的開發(fā)目標(biāo),是為了開發(fā)出一套適合大多 數(shù)人能夠使用的軟件。經(jīng)過調(diào)查以后發(fā)現(xiàn)它具有以下特點(diǎn): (1)通過注冊可以得到唯一的 jicq 號碼。 (2)登錄成功時,顯示你所有的好友;如果好友在線時,顯示在線。 (3)強(qiáng)大的新人搜索功能 ,可以查看他們的資料,并可以加為好友;如果知道對方的 jicq 號碼可以直接加為好友。 (4)當(dāng)你上線或離開時 icq 會提醒你的朋友們。 (二)系統(tǒng)可行性分析 1.經(jīng)濟(jì)可行性分析 開發(fā)一個全新的軟件是一項(xiàng)艱巨復(fù)雜的工作,它的投資主要是人力以及物力的投
21、資。對 于本系統(tǒng)來說,研究和開發(fā)本系統(tǒng)的主要目的是對我們所學(xué)知識一個綜合性的考察,主要的 投資也就是在硬件配置和軟件平臺上,因此新系統(tǒng)的實(shí)施不需要什么大的資金投入。 網(wǎng)絡(luò)通信軟件 icq 的開發(fā),使得我們可以更方便的與親朋好友交流,這必將提高我們學(xué) 習(xí)和工作的效率,讓我們在工作和學(xué)習(xí)中有更出色的表現(xiàn),因此在經(jīng)濟(jì)方面該系統(tǒng)可以進(jìn)行開 發(fā)。 2.技術(shù)可行性分析 (1)java sun 公司的口號就是網(wǎng)絡(luò)就是計(jì)算機(jī),java4能使所有東西從桌面計(jì)算平穩(wěn)的轉(zhuǎn)變?yōu)?基于網(wǎng)絡(luò)的計(jì)算,它是專門為此而建立的,并顯然是為了完成這個任務(wù)而來的。使用 java,我們可以相對輕松的一天編寫一個有條理的網(wǎng)絡(luò)程序。今天,
22、java 的網(wǎng)絡(luò)功能正在 飛躍發(fā)展,不斷有新的特性增加到這個有價(jià)值的基礎(chǔ)上,javasoft 實(shí)驗(yàn)室正在不斷努力使 java 更加完善。 (2)eclipse3.2 eclipse是一個開放源代碼的,基于java的整合型可擴(kuò)展開發(fā)平臺。eclipse 最初是替代由ibm公司開發(fā)的價(jià)值4千萬美金的商業(yè)軟件visual age for java的下一代ide開 發(fā)環(huán)境。2001年11月交給非營利軟件供應(yīng)商聯(lián)盟eclipse基金會(eclipse foudation)管理。 2003年,eclipse3.0選擇osgi服務(wù)平臺規(guī)范為運(yùn)行時架構(gòu)。 eclipse采用的技術(shù)是ibm公司開發(fā)的(swt),
23、這是一種基于java的窗口組件,類似于 java本身提供的awt和swing窗口組件;不過ibm聲稱swt比其他java窗口組件更有效率。就其 本身而言,它只是一個框架和一組服務(wù),用于插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,eclipse 附帶了一個標(biāo)準(zhǔn)的插件集,包括java開發(fā)工具(java development toolsm,jdt) 。 雖然大多數(shù)用戶和樂于將eclipse當(dāng)作javaide來使用,但eclipse的目標(biāo)不僅限于此。 eclipse還包括插件開發(fā)環(huán)境(plug-in development environment,pde) ,這個組件主要針 對希望擴(kuò)展eclipse的軟件開發(fā)人
24、員,因?yàn)樗试S他們構(gòu)建與eclipse環(huán)境無縫集成的工具。 由于eclipse提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人 員都具有同等的發(fā)揮場所。 本系統(tǒng)采用的是eclipse3.2中文版。 (3)sql2000 完全支持 web.通過 web 可以查詢、分析和處理數(shù)據(jù)。在 sql server 20008-9 中使 用可擴(kuò)展標(biāo)記語言 (xml) 可以在松散耦合系統(tǒng)之間交換數(shù)據(jù)。從瀏覽器通過防火墻可方便 而安全地訪問數(shù)據(jù),并可對有格式文檔執(zhí)行快速全文檢索。分析和鏈接聯(lián)機(jī)分析處理 (olap) 多維數(shù)據(jù)集,即使在 web 上也是如此。執(zhí)行點(diǎn)擊流分析,以了解 web 用戶
25、的情況。 高度可擴(kuò)展性和可靠性.使用增強(qiáng)的可擴(kuò)展性和可靠性功能,可無限制地?cái)U(kuò)容。分散 數(shù)據(jù)庫工作負(fù)荷以獲得應(yīng)用程序的擴(kuò)展。充分利用對稱多處理 (smp) 硬件,并與 microsoft windows 2000 datacenter 一起使用。服務(wù)器操作系統(tǒng)最多可支持 32 個 cpu 和 64 gb 的 ram。 對市場的快速反應(yīng)能力.快速構(gòu)建、部署和管理電子商務(wù)、各種業(yè)務(wù)和數(shù)據(jù)倉庫解決 方案。對用戶數(shù)據(jù)和財(cái)務(wù)數(shù)據(jù)進(jìn)行深入的數(shù)據(jù)挖掘。使用集成的 t-sql 調(diào)試程序可縮短開 發(fā)時間,并可開發(fā)在不同應(yīng)用程序中可重復(fù)使用的自己的功能。sql server 2000 提供了 web 應(yīng)用程序開發(fā)的
26、捷徑。 而且,在最后發(fā)布之前.sql server 2000 發(fā)布了面向世界的標(biāo)準(zhǔn)測試程序,使其競爭 對手在多平臺方面的表現(xiàn)大為遜色。 3.操作可行性分析 一個好的界面設(shè)計(jì)往往會給人很舒服的感覺,像我們熟悉的騰訊 qq,該軟件設(shè)計(jì)的簡潔 大方,上面小企鵝更是經(jīng)典之作,所以我在設(shè)計(jì)的時候參考了騰訊 qq 的界面,爭取作到實(shí)用性 和簡潔性并重。我設(shè)計(jì)的這個網(wǎng)絡(luò)通信軟件界面簡潔,給人的第一感覺就很清爽,而且具體 的操作實(shí)施也很人性化,使用簡單方便,能大大提高用戶工作效率,為其節(jié)約不少不必要的 開支。因此,該系統(tǒng)的開發(fā)具有操作可行性。 4.計(jì)劃可行性分析 本次系統(tǒng)的開發(fā)預(yù)備在 1 月之內(nèi)完成全部的工作
27、。由于系統(tǒng)所用語言及開發(fā)工具我之前 接觸過,所以對與我來說難度并不是很大,如果碰到技術(shù)上的難題,可以上網(wǎng)查找或者求助 于指導(dǎo)老師,盡最大努力做出讓自己和老師都滿意的系統(tǒng)。 (三)系統(tǒng)需求分析 進(jìn)行數(shù)據(jù)庫設(shè)計(jì)5首先必須準(zhǔn)確了解與分析用戶需求(包括數(shù)據(jù)與處理) 。需求分析是 整個設(shè)計(jì)過程的基礎(chǔ),是最困難,最耗費(fèi)時間的一步。作為地基的需求分析是否做得充分與 準(zhǔn)確,決定了在其上構(gòu)建數(shù)據(jù)庫大廈的速度與質(zhì)量。需求做得不好,是指會導(dǎo)致整個數(shù)據(jù)庫 設(shè)計(jì)返工重做。 確定對所開發(fā)系統(tǒng)的綜合要求,并提出這些需求的實(shí)現(xiàn)條件,以及需求應(yīng)該達(dá)到的標(biāo)準(zhǔn)。 這些需求包括:功能需求,性能需求,環(huán)境需求,可靠性需求,安全保密需求
28、,用戶界面需求, 資源使用需求,軟件成本消耗與開發(fā)進(jìn)度需求,預(yù)先估計(jì)以后系統(tǒng)可能達(dá)到的目標(biāo)。 通過分析我們得出:本系統(tǒng)主要包括用戶注冊,用戶登錄, 用戶添加好友, 用戶刪除好 友,用戶發(fā)送和接收消息等。用戶的基本情況記錄在 sql server 2000 數(shù)據(jù)庫里,方便用戶 的登錄和查詢。用戶注冊:當(dāng)服務(wù)器收到用戶的注冊請求,便開始接受客戶傳遞的信息,諸 如客戶的呢稱啦,性別,籍貫,頭像,個人資料等;用戶登錄:在客戶端,用戶輸入其 jicq 號碼和密碼,然后建立與服務(wù)器的連接;用戶添加好友:客戶登錄后,按查找按鈕后, 開始向服務(wù)器發(fā)出查找請求;用戶刪除好友:用戶在其好友列表中選擇要刪除的好友并
29、按刪 除;發(fā)送和接收消息:用戶通過在好友列表里的好友的 ip 地址,通過 udp 與其他用戶進(jìn)行信 息交流。 3、系統(tǒng)設(shè)計(jì) (一)系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì) 本系統(tǒng)由三個子模塊組成: 數(shù)據(jù)庫設(shè)計(jì)、服務(wù)器程序、客戶程序. 要求該系統(tǒng)能夠?qū)崿F(xiàn) icq 的實(shí)時聊天. 完成系統(tǒng)的 icq 功能,包括各種界面的編寫;服務(wù)器和數(shù)據(jù)庫的連接,客 戶機(jī)與服務(wù)器的 tcp 連接,客戶機(jī)之間的 udp 連接;服務(wù)器通過 jdbc 和后臺數(shù)據(jù)庫連接等。 jdbc-odbc socket(tcp) socket(tcp) socket(tcp). . udp udp udp . 圖 3l 整個系統(tǒng)的結(jié)構(gòu)框架采用客戶/服務(wù)器摸式
30、 后臺數(shù)據(jù)庫 sql server2000 服務(wù)器 客戶客戶 客戶 (二)數(shù)據(jù)模塊的流程圖 登陸請求數(shù)據(jù) 回現(xiàn)信息 通過驗(yàn)證 發(fā)信息 圖 3-2 數(shù)據(jù)模塊的流程圖 (三)業(yè)務(wù)流圖 服務(wù)器 客戶 建立連接 發(fā)出注冊請求 發(fā)送昵稱性別 個人資料等 執(zhí)行數(shù)據(jù)庫添加 返回用戶的號碼, 并在數(shù)據(jù)庫注冊用 得到 jicq 號碼 戶的 ip 地址等消息 信息處理 用戶登陸 收 消 息 收 消 息 息 其他用戶 用戶收發(fā)信息 后臺數(shù) 據(jù)庫 serversocket socket accept out new in new out information in information 數(shù)據(jù)庫 發(fā)送完畢 停止接受
31、 jicqno 結(jié)束 out jicqno 打開主程序并創(chuàng)建 udp 結(jié)束 圖 3-3 業(yè)務(wù)流圖 (四)數(shù)據(jù)庫的設(shè)計(jì) 1.數(shù)據(jù)庫的需要分析 數(shù)據(jù)字典15也常稱為數(shù)據(jù)目錄或系統(tǒng)目錄,它通常是一系列表,它存儲著數(shù)據(jù)庫中有 關(guān)信息的當(dāng)前描述,包括數(shù)據(jù)庫三級模式、數(shù)據(jù)類型、用戶名表、用戶權(quán)限、程序與其用戶 聯(lián)系等有關(guān)數(shù)據(jù)庫系統(tǒng)的信息,起著系統(tǒng)狀態(tài)目錄表的作用,它能幫助用戶、數(shù)據(jù)庫管理員 和數(shù)據(jù)庫管理系統(tǒng)本身使用和管理數(shù)據(jù)庫。 通過數(shù)據(jù)庫的需求分些后,設(shè)計(jì)如下面所示的數(shù)據(jù)項(xiàng): 數(shù)據(jù)項(xiàng)的編號:a01-01 數(shù)據(jù)項(xiàng)的名稱:icqno 數(shù)據(jù)項(xiàng)的別名:無 數(shù)據(jù)項(xiàng)的簡述:用戶的號碼 數(shù)據(jù)項(xiàng)的類型:int 數(shù)據(jù)項(xiàng)的
32、長度:20 個字節(jié) 數(shù)據(jù)項(xiàng)的編號:a01-02 數(shù)據(jù)項(xiàng)的名稱:nickname 數(shù)據(jù)項(xiàng)的別名:無 數(shù)據(jù)項(xiàng)的簡述:用戶的呢稱 數(shù)據(jù)項(xiàng)的類型:char 數(shù)據(jù)項(xiàng)的長度:20 個字節(jié) 數(shù)據(jù)項(xiàng)的編號:a01-03 數(shù)據(jù)項(xiàng)的名稱:password 數(shù)據(jù)項(xiàng)的別名:無 數(shù)據(jù)項(xiàng)的簡述:用戶的密碼 數(shù)據(jù)項(xiàng)的類型:char 數(shù)據(jù)項(xiàng)的長度:20 個字節(jié) 數(shù)據(jù)項(xiàng)的編號:a01-04 數(shù)據(jù)項(xiàng)的名稱:status 數(shù)據(jù)項(xiàng)的別名:無 數(shù)據(jù)項(xiàng)的簡述:用戶在線否 數(shù)據(jù)項(xiàng)的類型:bit 數(shù)據(jù)項(xiàng)的長度:4 字節(jié) 數(shù)據(jù)項(xiàng)的編號:a01-05 數(shù)據(jù)項(xiàng)的名稱:ip 數(shù)據(jù)項(xiàng)的別名:無 數(shù)據(jù)項(xiàng)的簡述:用戶的 ip 地址 數(shù)據(jù)項(xiàng)的類型:char
33、 數(shù)據(jù)項(xiàng)的長度:20 個字節(jié) 數(shù)據(jù)項(xiàng)的編號:a01-06 數(shù)據(jù)項(xiàng)的名稱:info 數(shù)據(jù)項(xiàng)的別名:無 數(shù)據(jù)項(xiàng)的簡述:用戶的資料 數(shù)據(jù)項(xiàng)的類型:varchar 數(shù)據(jù)項(xiàng)的長度:100 個字節(jié) 數(shù)據(jù)項(xiàng)的編號:a01-07 數(shù)據(jù)項(xiàng)的名稱:pic 數(shù)據(jù)項(xiàng)的別名:無 數(shù)據(jù)項(xiàng)的簡述:用戶的頭像號 數(shù)據(jù)項(xiàng)的類型:int 數(shù)據(jù)項(xiàng)的長度:20 個字節(jié) 數(shù)據(jù)項(xiàng)的編號:a01-08 數(shù)據(jù)項(xiàng)的名稱:sex 數(shù)據(jù)項(xiàng)的別名:無 數(shù)據(jù)項(xiàng)的簡述:用戶性別 數(shù)據(jù)項(xiàng)的類型:char 數(shù)據(jù)項(xiàng)的長度:4 個字節(jié) 數(shù)據(jù)項(xiàng)的編號:a01-09 數(shù)據(jù)項(xiàng)的名稱:email 數(shù)據(jù)項(xiàng)的別名:無 數(shù)據(jù)項(xiàng)的簡述:用戶的 email 數(shù)據(jù)項(xiàng)的類型:cha
34、r 數(shù)據(jù)項(xiàng)的長度:40 個字節(jié) 數(shù)據(jù)項(xiàng)的編號:a01-10 數(shù)據(jù)項(xiàng)的名稱:place 數(shù)據(jù)項(xiàng)的別名:無 數(shù)據(jù)項(xiàng)的簡述:用戶的籍貫 數(shù)據(jù)項(xiàng)的類型:char 數(shù)據(jù)項(xiàng)的長度:40 個字節(jié) 數(shù)據(jù)結(jié)構(gòu)的編號:b01-01 數(shù)據(jù)結(jié)構(gòu)的名稱:icqno 數(shù)據(jù)結(jié)構(gòu)的簡述:用戶的號碼 數(shù)據(jù)項(xiàng)的類型:int 數(shù)據(jù)項(xiàng)的長度:20 個字節(jié) 數(shù)據(jù)結(jié)構(gòu)的編號:b01-02 數(shù)據(jù)結(jié)構(gòu)的名稱:friend 數(shù)據(jù)結(jié)構(gòu)的簡述:好友的號碼 數(shù)據(jù)項(xiàng)的類型:int 數(shù)據(jù)項(xiàng)的長度:20 個字節(jié) 2.數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì) 根據(jù)上述的數(shù)據(jù)項(xiàng),我們設(shè)計(jì)出各種實(shí)體,以及它們之間的關(guān)系,這些實(shí)體包含各種具 體信息,通過相互之間的作用形成數(shù)據(jù)的流動。
35、實(shí)體之間的關(guān)系圖描述如下: 圖 3-4 e-r 圖 用戶 朋友 朋友 好友的號碼 昵稱 性別 email 籍貫 用戶信息 3.數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì) 邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù)就是把概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的基本e-r圖轉(zhuǎn)換為關(guān)系數(shù)據(jù)庫中 的各種表。各個表格的設(shè)計(jì)結(jié)果如下: 表3l 用戶的基本信息表(表名icq) 其中 icqno 字段為自動增加。 (其他還可以添加諸如電話號碼等字段作為更多選擇) 表 32 用戶的好友表(表名 friend) 序號字段名含義數(shù)據(jù)類型是否為空 1icqno 用戶的號碼 intno 2friend 好友的號碼 intno (五)系統(tǒng)開發(fā)與環(huán)境確定 1. .開發(fā)環(huán)境的確定 本系統(tǒng)
36、采用 windows xp professional + eclipse3.2 +jdk1.5+ sql server2000 為設(shè) 計(jì)環(huán)境進(jìn)行開發(fā). windows xp 其實(shí)是 windows nt 的最新版本,其實(shí) windows 操作系統(tǒng)按照內(nèi)核劃分為 win 9x 系列和 win nt 系列,我們常用的 windows xp 就屬于 win nt 系列。一般說來, windows 95 和 windows nt 已經(jīng)被淘汰,現(xiàn)在主要是用的是 windows xp、2000、2003。微軟 最初發(fā)行了兩個版本:專業(yè)版(windows xp professional)和家庭版(windo
37、ws xp home edition) 。前者主要面向?qū)I(yè)用戶,后者面向家庭。本系統(tǒng)采用的 windows xp professional。windows xp 是專為各種桌面計(jì)算機(jī)和便攜機(jī)開發(fā)的新一代操作系統(tǒng)。它繼 承了 windows nt 的先進(jìn)技術(shù),提供了高層次的安全性、穩(wěn)定性和系統(tǒng)性能。同時,它幫助 序號字段名含義數(shù)據(jù)類型是否為空 1icqno 用戶的號碼 intno 2nickname 用戶的呢稱 charno 3password 用戶的密碼 charno 4status 用戶在線否 bitno 5ip 用戶的 ip 地址 charyes 6info 用戶的資料 varcharye
38、s 7pic 用戶的頭像號 intyes 8sex 用戶性別 charyes 9email 用戶的 email charyes 10place 用戶的籍貫 charyes 用戶更加容易地使用計(jì)算機(jī)、安裝和配置系統(tǒng)、脫機(jī)工作和使用 internet 等。對于電腦和 網(wǎng)絡(luò)系統(tǒng)的管理員而言,windows xp 是一套更具有可管理性的桌面系統(tǒng),無論是部署、管 理還是為它提供技術(shù)支持都更加容易這意味著更低的總體擁有成本。 jdk 是個開發(fā)環(huán)境,剛開始接觸 java 的時候覺得 java 虛擬機(jī)很麻煩,不明白 jre 和 jdk 的區(qū)別,現(xiàn)在明白了 jdk 是運(yùn)行環(huán)境,jre 是開發(fā)環(huán)境。因此寫 jav
39、a 程序的時候需要 jdk,而運(yùn)行 java 程序的時候需要 jre。而 jdk 里面已經(jīng)包含了 jre,因此對 java_home 設(shè) 置為 jdk 的路徑時也可以正常運(yùn)行 java 程序。 eclipse3.2 速度快,效率高。組件功能更強(qiáng)大,并帶有非常強(qiáng)大圖形編輯功能,支持 可視化的 applet,swing,awt 等圖形組件的開發(fā)。支持 ejb3.o,支持 uml2.0,并帶有 uml2.0 模型編輯器。不像 3.0 一定需要 jdk5.0 的 jre,它只需要 jdk1.4.1 以上就可以了。 eclipse 是一款免費(fèi)的 ide,它支持 java 和 c/c+開發(fā),非常方便與便捷
40、,有強(qiáng)大而靈活擴(kuò) 展的插件功能,目前 borland 也加入該社團(tuán)的開發(fā),因此我們相信 eclipse 將成為 ide 的佼 佼者。 完全支持 web.通過 web 可以查詢、分析和處理數(shù)據(jù)。在 sql server 2000 中使用 可擴(kuò)展標(biāo)記語言 (xml) 可以在松散耦合系統(tǒng)之間交換數(shù)據(jù)。從瀏覽器通過防火墻可方便而 安全地訪問數(shù)據(jù),并可對有格式文檔執(zhí)行快速全文檢索。分析和鏈接聯(lián)機(jī)分析處理 (olap) 多維數(shù)據(jù)集,即使在 web 上也是如此。執(zhí)行點(diǎn)擊流分析,以了解 web 用戶的情況。 2. .系統(tǒng)的運(yùn)行環(huán)境 硬件環(huán)境: 服務(wù)器端:cpu 為 p3 800m,內(nèi)存為 128m,硬盤為 2
41、0g 客戶端: intel pentium iii 以上的微機(jī) 軟件環(huán)境: (1)服務(wù)器端: a.使用語言:java b.數(shù)據(jù)庫:sql server 2000 c.操作系統(tǒng)為:windows xp (2)客戶端 操作系統(tǒng):基本支持目前所有的操作平臺,推薦使用 windows 平臺。 3.系統(tǒng)實(shí)現(xiàn)的若干關(guān)鍵技術(shù) javaicq主要設(shè)計(jì)到了java的網(wǎng)絡(luò)編程和圖形界面的設(shè)計(jì)以及于數(shù)據(jù)庫的交互等等java 知識。 (1)java的網(wǎng)絡(luò)編程的介紹 網(wǎng)絡(luò)編程的目的就是指直接或間接地通過網(wǎng)絡(luò)協(xié)議與其他計(jì)算機(jī)進(jìn)行通訊。網(wǎng)絡(luò)編程 中有兩個主要的問題,一個是如何準(zhǔn)確的定位網(wǎng)絡(luò)上一臺或多臺主機(jī),另一個就是找到主
42、機(jī) 后如何可靠高效的進(jìn)行數(shù)據(jù)傳輸。在tcp/ip6協(xié)議中ip層主要負(fù)責(zé)網(wǎng)絡(luò)主機(jī)的定位,數(shù)據(jù)傳 輸?shù)穆酚桑蒳p地址可以唯一地確定internet上的一臺主機(jī)。而tcp層則提供面向應(yīng)用的可 靠的或非可靠的數(shù)據(jù)傳輸機(jī)制,這是網(wǎng)絡(luò)編程的主要對象,一般不需要關(guān)心ip層是如何處理 數(shù)據(jù)的。 目前較為流行的網(wǎng)絡(luò)編程模型是客戶機(jī)/服務(wù)器(c/s)結(jié)構(gòu)。即通信雙方一方作為服 務(wù)器等待客戶提出請求并予以響應(yīng)??蛻魟t在需要服務(wù)時向服務(wù)器提出申請。服務(wù)器一般作 為守護(hù)進(jìn)程始終運(yùn)行,監(jiān)聽網(wǎng)絡(luò)端口,一旦有客戶請求,就會啟動一個服務(wù)進(jìn)程來響應(yīng)該客 戶,同時自己繼續(xù)監(jiān)聽服務(wù)端口,使后來的客戶也能及時得到服務(wù)。 (2)基于s
43、ocket12-14的低層次java網(wǎng)絡(luò)編程 本系統(tǒng)采用的基于socket課題的低層次網(wǎng)絡(luò)編程。 網(wǎng)絡(luò)上的兩個程序通過一個雙向的通訊連接實(shí)現(xiàn)數(shù)據(jù)的交換,這個雙向鏈路的一端稱為一個 socket。socket通常用來實(shí)現(xiàn)客戶方和服務(wù)方的連接。socket是tcp/ip協(xié)議的一個十分流行 的編程界面,一個socket由一個ip地址和一個端口號唯一確定。 在傳統(tǒng)的unix環(huán)境下可以操作tcp/ip協(xié)議的接口不止socket一個,socket所支持的協(xié)議 種類也不光tcp/ip一種,因此兩者之間是沒有必然聯(lián)系的。在java環(huán)境下,socket編程主要 是指基于tcp/ip協(xié)議的網(wǎng)絡(luò)編程。 socket
44、通訊的一般過程 使用socket進(jìn)行client/server程序設(shè)計(jì)的一般連接過程是這樣的:server端listen(監(jiān) 聽)某個端口是否有連接請求,client端向server端發(fā)出connect(連接)請求,server端向 client端發(fā)回accept(接受)消息。一個連接就建立起來了。server端和client端都可以通 過send,write等方法與對方通信。 對于一個功能齊全的socket,都要包含以下基本結(jié)構(gòu),其工作過程包含以下四個基本的 步驟: (1) 創(chuàng)建socket; (2) 打開連接到socket的輸入/出流; (3) 按照一定的協(xié)議對socket進(jìn)行讀/寫操作;
45、 (4) 關(guān)閉socket。 這是整個系統(tǒng)的難點(diǎn),socket的編程不是特別容易,尤其是涉及了多線程之間的通信。 (3)圖形界面的設(shè)計(jì) swing是一個用于開發(fā)java應(yīng)用程序用戶界面的開發(fā)工具包。它以抽象窗口工具 (awt)為基礎(chǔ)使跨平臺應(yīng)用程序可以使用任何可插拔的外觀風(fēng)格。swing開發(fā)人員只用很少 的代碼就可以利用swing豐富、靈活的功能和模塊化組件來創(chuàng)建優(yōu)雅的用戶界面。 java的基礎(chǔ)類(jfc)是開發(fā)圖形用戶界面的api集。java的基礎(chǔ)類包括以下api: swing組件。 可訪問性api。 抽象窗口工具包(abstract window toolkit,awt)是java開發(fā)用戶
46、界面最初的工具包。 awt是建立jfc的主要基礎(chǔ), java 2圖形設(shè)計(jì),卷:awt對awt有詳細(xì)的介紹。 swing是建立在awt之上的(參見1.2節(jié)“輕量組件與重量組件的比較”中對輕量組件與重 量組件比較的討論)、包括大多數(shù)輕量組件的組件集。除提供了awt所缺少的、大量的附加組 件外,swing還提供了替代awt重量組件的輕量組件。swing還包括了一個使人印象深刻的、 用于實(shí)現(xiàn)包含插入式界面樣式等特性的圖形用戶界面的下層構(gòu)件。因此,在不同的平臺上, swing組件都能保持組件的界面樣式特性,如雙緩沖、調(diào)試圖形和文本編輯包等。 這一部分界面的設(shè)計(jì)并不是很難,關(guān)鍵是美觀度,界面的大小不好調(diào)整
47、。 (4)數(shù)據(jù)庫的交互 主要是使用jdbc技術(shù)。jdbc是java的開發(fā)者sun的javasoft公司制定的java數(shù)據(jù)庫 連接(java data base connectivity)技術(shù)的簡稱,是為各種常用數(shù)據(jù)庫提供無縫聯(lián)接的技 術(shù)。jdbc在web和internet應(yīng)用程序中的作用和odbc在windows系列平臺應(yīng)用程序中的作用類 似。odbc(opendata base connectivity),稱為開放式數(shù)據(jù)庫互聯(lián)技術(shù),是由microsoft公 司倡導(dǎo)并得到業(yè)界普遍響應(yīng)的一門數(shù)據(jù)庫連接技術(shù),如果讀者有使用odbc編程的經(jīng)驗(yàn),就會 發(fā)現(xiàn)jdbc與odbc很類似。jdbc現(xiàn)在可以連接
48、的數(shù)據(jù)庫包括: xbase、oracle、sybase、aceess以及paradox等。 本軟件主要是登錄的時候,從數(shù)據(jù)庫讀取數(shù)據(jù),檢查登錄的用戶名和密碼時不時正確; 注冊的時候,在數(shù)據(jù)庫中插入一條數(shù)據(jù);添加好友的時候,從fried表中插入一條數(shù)據(jù);刪 除好友的時候,從fried表中刪除好友的jicq號碼,就是刪除了一條數(shù)據(jù),這都是與數(shù)據(jù)庫 的操作,這些都是從java程序中讀取數(shù)據(jù)庫中的數(shù)據(jù),怎么實(shí)現(xiàn)這一功能,就是靠的jdbc技 術(shù),可見這是完成本系統(tǒng)的關(guān)鍵環(huán)節(jié)。 本系統(tǒng)采用的是jdbc-odbc橋連接數(shù)據(jù)庫。主要是要從管理工具中配置相應(yīng)數(shù)據(jù)庫的數(shù) 據(jù)源。 (5)sql server 200
49、0知識的運(yùn)用 sql server7 是一個關(guān)系數(shù)據(jù)庫管理系統(tǒng)。是microsoft 公司推出的sql server 數(shù)據(jù) 庫管理系統(tǒng)的新版本。該版本繼承了sql server 7.0 版本的優(yōu)點(diǎn),同時又比它增加了許多 更先進(jìn)的功能,具有使用方便、可伸縮性好、與相關(guān)軟件集成程度高等優(yōu)點(diǎn)??煽缭綇倪\(yùn)行 microsoft windows 98 的膝上型電腦,到運(yùn)行microsoft windows 2000 的大型多處理器的 服務(wù)器等多種平臺使用。 sql server 2000 的常見版本 企業(yè)版(enterprise edition) 支持所有的sql server 2000 特性,可作為大
50、型web站點(diǎn)、企業(yè)oltp(聯(lián)機(jī)事務(wù)處理) 以及數(shù)據(jù)倉庫系統(tǒng)等的產(chǎn)品數(shù)據(jù)庫服務(wù)器。 標(biāo)準(zhǔn)版(standard edition) 用于小型的工作組或部門 個人版(personal edition) 用于單機(jī)系統(tǒng)或客戶機(jī) 開發(fā)者版(developer edition) 用于程序員開發(fā)應(yīng)用程序,這些程序需要sql server 2000 作為數(shù)據(jù)存儲設(shè)備。 此外,sql server 2000 還有桌面引擎(desktop engine) 和windows ce 版。用戶可 以根據(jù)實(shí)際情況選擇所要安裝的sql server 2000 版本。 本系統(tǒng)采用的sql server 2000 個人版。因?yàn)樯?/p>
51、學(xué)期學(xué)過數(shù)據(jù)庫原理,所以在使用sql server來建庫,建表來說,并不是很難。 本軟件主要是登錄的時候,從數(shù)據(jù)庫讀取數(shù)據(jù),檢查登錄的用戶名和密碼時不時正確; 注冊的時候,在數(shù)據(jù)庫中插入一條數(shù)據(jù);添加好友的時候,從fried表中插入一條數(shù)據(jù);刪 除好友的時候,從fried表中刪除好友的jicq號碼,就是刪除了一條數(shù)據(jù),這都是與數(shù)據(jù)庫 的操作,當(dāng)然會用到j(luò)dbc技術(shù),但是基本的sql語句,如增刪改查都要會;例如從數(shù)據(jù)庫中 查找數(shù)據(jù),select 字段名 from 表名 where 條件;等等都是最簡單的sql語句。 本系統(tǒng)還會用到數(shù)據(jù)庫的備份等等或者是分離數(shù)據(jù)庫,附加數(shù)據(jù)庫等。這些內(nèi)容都是必 須
52、要掌握的,這樣才能更好的運(yùn)行本系統(tǒng)。 四、icq 的主要模塊 (一)服務(wù)器程序 服務(wù)器與客戶間通過套接口 socket(tcp)連接。在 java 中使用套接口相當(dāng)簡單,java api 為處理套接口的通信提供了一個類 .socket.,使得編寫網(wǎng)絡(luò)應(yīng)用程序相對容 易服務(wù)器采用多線程以滿足多用戶的請求,通 jdbcc 與后臺數(shù)據(jù)庫連接,并通過創(chuàng)建一個 serversocket 對象來監(jiān)聽來自客戶的連接請求,默認(rèn)端口為 5678,然后無限循環(huán)調(diào)用 accept()方法接受客戶程序的連接 如果申請 icq 號碼,服務(wù)器就會處理客戶的新建請求,準(zhǔn)備接受用戶的呢稱,密碼, email,個人資料,籍貫,
53、頭像等信息。然后數(shù)據(jù)庫添加客戶其注冊的號碼,新建用戶結(jié)束。 如果是登錄,連接數(shù)據(jù)庫,準(zhǔn)備從數(shù)據(jù)庫中選擇呢稱和密碼。數(shù)據(jù)庫查尋輸入的 jicq 號碼,輸入的密碼執(zhí)行數(shù)據(jù)庫查尋比較輸入的號碼與密碼是否相同。如果相同就告訴客戶 ok,并且更新數(shù)據(jù)庫用戶為在線以及注冊用戶的 ip 地址,否者告訴客戶失敗登錄結(jié)束。 用戶查找好友,連接數(shù)據(jù)庫,并且返回其他用戶的呢稱,性別,籍貫,個人資料等信息 以及返回用戶的 jicq 號碼,頭像號,及是否在線,查找好友結(jié)束。 用戶登錄時讀取其好友資料,連接好友表,返回用戶的好友名單。告訴客戶其好友的呢 稱,號碼,ip 地址,狀態(tài),頭像,個人資料等信息。 用戶添加好友,連
54、接數(shù)據(jù)庫,根據(jù)接受的用戶號碼及好友號碼向好友表添加記錄用戶添 加好友。其他用戶如果加我,我就加他。連接數(shù)據(jù)庫,根據(jù)接受的用戶號碼及好友號碼向好 友表添加記錄。如果成功,就向用戶傳遞好友的基本信息,比如呢稱等。 用戶刪除好友,連接數(shù)據(jù)庫,根據(jù)接受的用戶號碼及好友號碼向好友表刪除記錄 用戶退出程序,連接數(shù)據(jù)庫,根據(jù)接受的用戶號碼,將其狀態(tài)字段設(shè)為 0,及 ip 地址 設(shè)為空 那些人加了我為好友,以便上線通知他們,連接數(shù)據(jù)庫,根據(jù)我的號碼,從好友表中選 擇誰加了我,然后告訴這些好友的 ip 地址,然后發(fā)給用戶以便告訴其他客戶我上線了。 (二)客戶程序 客戶通過 socket(inetaddress,
55、port)建立與服務(wù)器的連接。服務(wù)器與客戶都通過構(gòu)造 bufferedreader,printwriter 來建立輸入輸出流,然后雙方通過該輸入輸出流來相互傳遞 信息,一旦收到客戶方的連接請求,服務(wù)器 accept()方法返回一個新建的 socket 對象。客 戶端然后向服務(wù)器發(fā)送消息,比如注冊,登錄,查找好友等,服務(wù)器收到來自客戶的請求后, 針對不同的消息處理請求, 雖然 udp 不可靠但是對于 icq 可靠性并不太重要,而且 udp 快速, 所以客戶間發(fā)送信息通過 udp。用戶登錄時通過類 datagrampacket 和 datagramsocket 創(chuàng)建 udp 包括其本地接受端口以及
56、發(fā)送端口,默認(rèn)端口為 5000 和 5001,通過取得的好友的 ip 地 址來向好友發(fā)送消息(send(datagrampacket)和接受消息(receive(datagrampacket)。當(dāng) 用戶通過 udp 收到消息后,可以通過 datagrampacket 的方法 inetaddress getaddress()得 到對方的 ip 地址,通過對好友列表比較以判斷是誰并提示用戶收到某某的消息,然后用戶 選擇該用戶查看消息,如果好友列表沒有該人就顯示收到陌生人的消息。用戶可以按陌生人 按鈕查看消息。 1.用戶注冊。當(dāng)服務(wù)器收到用戶的注冊請求,便開始接受客戶傳第的信息,如 客戶的呢稱啦,性
57、別,籍貫,頭像,個人資料等,接受完畢后,便通 jdbccodbc 與后臺數(shù)據(jù) 庫連接,然后向數(shù)據(jù)庫添加記錄,如果成功,便向客戶返回其 jicq 號碼,并在數(shù)據(jù)庫中注 冊用戶的 ip 地址,然后更新其 status 為 1 即用戶在線??蛻羰盏椒?wù)器返回的信息后,便 打開主程序窗口,并同時開始創(chuàng)建 udp 以便在用戶之間建立聯(lián)系。 2.用戶登錄。在客戶端,用戶輸入其 jicq 號碼和密碼,然后建立與服務(wù)器的連接,告 訴服務(wù)器我要登錄,服務(wù)器收到后,開始通 jdbccodbc 讀取數(shù)據(jù)庫,然后與用戶輸入的信息 比較,如果相同就向客戶返回成功消息并將其 status 字段設(shè)為表示上線了以及注冊其 i
58、p 地址,否則返回錯誤,如果客戶收到成功信息就打開主窗口,否則提示出錯。如果成功,便 打開主程序窗口,并同時開始創(chuàng)建 udp 以便在用戶之間建立聯(lián)系。然后客戶向服務(wù)器請求讀 取好友名單,服務(wù)器收到該請求,開始讀取數(shù)據(jù)庫中的 friend 表,得到好友的號碼后,再 在 icq 表中讀取好友資料,然后向客戶端發(fā)送這些信息,客戶收到后就在主窗口顯示好友, 比如頭像,呢稱。并且建立幾個矢量(vector)用以存儲好友的呢稱,jicq 號碼,頭像編 號,ip 地址等信息。 (三)數(shù)據(jù)庫 系統(tǒng)可以采用任何一種流行的,java 支持的數(shù)據(jù)庫,本系統(tǒng)采用了 microsoft 公司的 sql server20
59、00 作為后臺數(shù)據(jù)庫。通過對現(xiàn)在流行的一些 icq 的參考,建立數(shù)據(jù)庫,名為 javaicq,數(shù)據(jù)庫共建立兩個表,一個是用戶的基本信息,包括呢稱,jicq 號碼等。一個是用 戶的好友表,包括用戶自己的號碼和好友的號碼。 (四)主要的功能實(shí)現(xiàn) 圖 4l sql server2000 的 friend 表 圖 42 配置 odbc 數(shù)據(jù)源 javaicq 用 jdbc-odbc11連接數(shù)據(jù)庫的代碼如下: class.forname(sun.jdbc.odbc.jdbcodbcdriver);/用 odbc 橋連接數(shù)據(jù)庫 connection c=drivermanager.getconnectio
60、n(jdbc:odbc:javaicq,sa,); /加載驅(qū)動,其中 javaicq 是要連接的數(shù)據(jù)庫,后面的是用戶名和密碼 string sql=select nickname,password from icq where icqno=?; /sql 語句 preparedstatement prepare=c.preparestatement(sql);/設(shè)定數(shù)據(jù)庫查尋條件 string icqno=in.readline(); int g=integer.parseint(icqno);/取得輸入的 jicq 號碼 system.out.println(icqno); string p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 關(guān)于民法典第六編案例及分析
- 福建省南平市邵武大竹中學(xué)高二英語聯(lián)考試卷含解析
- 《財(cái)務(wù)會計(jì)實(shí)務(wù)(業(yè)財(cái)融合版)》課件 項(xiàng)目五 銷售與收款
- 2025年江蘇蘇州市常熟市梅李智城產(chǎn)業(yè)發(fā)展有限公司招聘筆試參考題庫附帶答案詳解
- 2025年江西金控投資管理中心招聘筆試參考題庫含答案解析
- 2025年麗水蓮都區(qū)經(jīng)濟(jì)商務(wù)局招聘筆試參考題庫含答案解析
- 2025年漳州環(huán)境集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 2025年中國移動中移金科校園招聘筆試參考題庫含答案解析
- 二零二五年度個人產(chǎn)權(quán)房屋買賣帶社區(qū)活動組織服務(wù)合同3篇
- 2024旅游業(yè)務(wù)運(yùn)營與管理合同
- 幼兒園工作總結(jié)匯報(bào)課件
- 《民用爆炸物品安全管理?xiàng)l例》課件
- 移動通信室內(nèi)覆蓋工程施工技術(shù)
- 生產(chǎn)組織供應(yīng)能力說明
- DL-T 1476-2023 電力安全工器具預(yù)防性試驗(yàn)規(guī)程
- 通信安全員ABC證報(bào)名考試題庫及答案
- 開放系統(tǒng)10861《理工英語(4)》期末機(jī)考真題及答案(第103套)
- 思想道德與法治測試三考試附有答案
- 《中華民族大團(tuán)結(jié)》(初中)-第7課-共同創(chuàng)造科學(xué)成就-教案
- 《短視頻拍攝與制作》課件-3短視頻拍攝的三大技巧
- (高清版)DZT 0399-2022 礦山資源儲量管理規(guī)范
評論
0/150
提交評論