網(wǎng)絡(luò)環(huán)境下實(shí)時(shí)通訊技術(shù)的研究與實(shí)現(xiàn)_第1頁
網(wǎng)絡(luò)環(huán)境下實(shí)時(shí)通訊技術(shù)的研究與實(shí)現(xiàn)_第2頁
網(wǎng)絡(luò)環(huán)境下實(shí)時(shí)通訊技術(shù)的研究與實(shí)現(xiàn)_第3頁
網(wǎng)絡(luò)環(huán)境下實(shí)時(shí)通訊技術(shù)的研究與實(shí)現(xiàn)_第4頁
網(wǎng)絡(luò)環(huán)境下實(shí)時(shí)通訊技術(shù)的研究與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩71頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、網(wǎng)絡(luò)環(huán)境下實(shí)時(shí)通訊技術(shù)的研究與實(shí)現(xiàn) 第一章 緒論網(wǎng)絡(luò)環(huán)境下實(shí)時(shí)通訊技術(shù)的研究與實(shí)現(xiàn)摘 要隨著互聯(lián)網(wǎng)的發(fā)展,網(wǎng)絡(luò)實(shí)時(shí)通訊軟件成為大多數(shù)上網(wǎng)用戶的一種極為常見的互動溝通交流工具。網(wǎng)絡(luò)實(shí)時(shí)通訊軟件可以向網(wǎng)絡(luò)用戶提供開放性的實(shí)時(shí)通訊服務(wù),供網(wǎng)絡(luò)用戶之間進(jìn)行聊天,傳遞消息和交流技術(shù)經(jīng)驗(yàn),而且現(xiàn)在已逐步應(yīng)用于商務(wù)領(lǐng)域。實(shí)時(shí)通訊軟件具有良好的信息傳遞、消息交流功能,是工作和生活中必備的工具。網(wǎng)絡(luò)實(shí)時(shí)通訊技術(shù)在網(wǎng)絡(luò)資源利用率、通訊的及時(shí)性,快捷性,安全性方面有明顯的優(yōu)勢。因此,實(shí)時(shí)通訊技術(shù)蘊(yùn)涵著巨大的商業(yè)和技術(shù)潛在價(jià)值。文章首先介紹了網(wǎng)絡(luò)實(shí)時(shí)通訊系統(tǒng)的背景,課題研究的主要內(nèi)容及以相關(guān)技術(shù);接著介紹了該網(wǎng)絡(luò)實(shí)時(shí)

2、通訊系統(tǒng)的總體設(shè)計(jì)思路,對該網(wǎng)絡(luò)實(shí)時(shí)通訊系統(tǒng)的各個(gè)功能模塊進(jìn)行了設(shè)計(jì);然后對每個(gè)功能模塊進(jìn)行了詳細(xì)設(shè)計(jì);最后對系統(tǒng)開發(fā)設(shè)計(jì)過程中的問題和經(jīng)驗(yàn)進(jìn)行了總結(jié)和討論。網(wǎng)絡(luò)實(shí)時(shí)通訊系統(tǒng)以 java 作為開發(fā)工具完成系統(tǒng)的界面和實(shí)現(xiàn)前臺操作,以microsoft sql server 2000 作為后臺數(shù)據(jù)庫。在系統(tǒng)的實(shí)現(xiàn)過程中,用戶可以實(shí)現(xiàn)的操作有新用戶的注冊、注冊用戶的登陸和在線用戶間的聊天已及文件傳輸。系統(tǒng)經(jīng)調(diào)試運(yùn)行能基本實(shí)現(xiàn)預(yù)期的目標(biāo)。關(guān)鍵詞:計(jì)算機(jī)網(wǎng)絡(luò);實(shí)時(shí)通訊;服務(wù)器;客戶端 網(wǎng)絡(luò)環(huán)境下實(shí)時(shí)通訊技術(shù)的研究與實(shí)現(xiàn) 第一章 緒論abstractwith the development of int

3、ernet, the network instant messenger software has become a great common intercourse tool of the majority of people. the network instant messenger software can offer open chat service to the net friends to chat, to express the impressions, exchange technological experience, and now already gradually

4、applied in the business realm. the network instant messenger software has good functions of information transmission and exchange news, so it is the indispensable tool in our daily life.the technique of network instant messenger has obvious advantages in many aspects such as network resource utiliza

5、tion ratio, and the instant, shortcut, security of communication, etc. so, the technique of network instant messenger contains the enormous potential value of commerce and technology.the article has introduced some backgrounds of the network instant messenger system and relevant technologies for the

6、 main content of studying in this subject at first. then has introduced the overall design of this network instant messenger system, divided the system into each functional module and designed. then designed in detail each functional module; summarized and discussed the question and experience in th

7、e design process about the system finally.the network instant messenger system regard java as developing instrument finish systematic interface and realize front desk operate, regard microsoft sql server 2000 as backstage supporters database . in the course of systematic realization, operation alrea

8、dy had registration of new user, landing of the registered user, chat and file transfer among online users which users can realize. the system is debugged and can realize the anticipated goal to operate basically.key words computer network, instant messenger, server, client網(wǎng)絡(luò)環(huán)境下實(shí)時(shí)通訊技術(shù)的研究與實(shí)現(xiàn) 第一章 緒論目

9、錄第一章 緒論 .11.1 計(jì)算機(jī)網(wǎng)絡(luò)的基本概念.11.1.1 計(jì)算機(jī)網(wǎng)絡(luò)簡介.11.1.2 tcp/ip 結(jié)構(gòu)模型 .11.2 實(shí)時(shí)通訊技術(shù)的起源和發(fā)展.21.2.1 實(shí)時(shí)通訊技術(shù)的起源.21.2.2 實(shí)時(shí)通訊技術(shù)的發(fā)展.21.3 實(shí)時(shí)通訊軟件的功能.31.4 課題研究的內(nèi)容及意義.3第二章 系統(tǒng)概述 .52.1 系統(tǒng)需求分析.52.1.1 功能需求.52.1.2 性能需求.52.2 系統(tǒng)可行性分析.62.2.1 經(jīng)濟(jì)可行性.62.2.2 操作可行性.62.2.3 技術(shù)可行性.62.3 開發(fā)環(huán)境的選擇和介紹.72.3.1 編程環(huán)境的選擇.72.3.2 數(shù)據(jù)庫的選擇.7第三章 系統(tǒng)總體設(shè)計(jì) .

10、93.1 系統(tǒng)設(shè)計(jì)思想.93.2 系統(tǒng)結(jié)構(gòu)圖.93.3 系統(tǒng)流程圖.103.3.1 主流程圖.103.3.2 系統(tǒng)數(shù)據(jù)流程.103.3.3 系統(tǒng)的具體功能實(shí)現(xiàn)的流程圖.11第四章 系統(tǒng)詳細(xì)設(shè)計(jì) .124.1 程序系統(tǒng)結(jié)構(gòu).124.1.1 功能劃分.12網(wǎng)絡(luò)環(huán)境下實(shí)時(shí)通訊技術(shù)的研究與實(shí)現(xiàn) 第一章 緒論4.2 數(shù)據(jù)需求.134.2.1 數(shù)據(jù)流條目.134.2.2 加工說明.134.3 系統(tǒng)具體功能的設(shè)計(jì).144.3.1 新用戶注冊.144.3.2 用戶登陸.154.3.3 收發(fā)信息.174.3.4 文件傳輸.184.4 數(shù)據(jù)庫設(shè)計(jì) .214.5 關(guān)鍵技術(shù)的分析.224.5.1 客戶機(jī)連接與服務(wù)器的

11、連接.224.5.2 用戶間收發(fā)信息.224.5.3 用戶間傳輸文件.234.5.4 數(shù)據(jù)庫的操作.25第五章 系統(tǒng)的調(diào)試與運(yùn)行 .275.1 系統(tǒng)的調(diào)試.275.2 系統(tǒng)的使用.275.2.1 系統(tǒng)運(yùn)行環(huán)境.275.2.2 系統(tǒng)的主要模塊的運(yùn)行結(jié)果.28第六章 總結(jié) .316.1 論文研究內(nèi)容總結(jié).316.2 后續(xù)研究工作展望.31致謝 .33參考文獻(xiàn) .34附錄 .35網(wǎng)絡(luò)環(huán)境下實(shí)時(shí)通訊技術(shù)的研究與實(shí)現(xiàn) 第一章 緒論第一章 緒論1.1 計(jì)算機(jī)網(wǎng)絡(luò)的基本概念1.1.1 計(jì)算機(jī)網(wǎng)絡(luò)簡介計(jì)算機(jī)網(wǎng)絡(luò):將多個(gè)具有獨(dú)立工作能力的計(jì)算機(jī)系統(tǒng)通過通信設(shè)備和線路由功能完善的網(wǎng)絡(luò)軟件實(shí)現(xiàn)資源共享和數(shù)據(jù)通信的系

12、統(tǒng)。根據(jù)地理分布,可分為lan(局域網(wǎng)),wan(廣域網(wǎng))。從定義中看出涉及到三個(gè)方面的問題:(1) 至少兩臺計(jì)算機(jī)互聯(lián)。(2) 通信設(shè)備與線路介質(zhì)。(3) 網(wǎng)絡(luò)軟件,通信協(xié)議和 nos(network operating system,網(wǎng)絡(luò)操作系統(tǒng))。而 internet 是由一些使用公用語言互相通信的計(jì)算機(jī)連接而成的全球網(wǎng)絡(luò)。1.1.2 tcp/ip 結(jié)構(gòu)模型tcp/ip 結(jié)構(gòu)模型:目前使用的大多數(shù)網(wǎng)絡(luò)通信協(xié)議的結(jié)構(gòu)都是基于 osi(open systems interconnection,開放式系統(tǒng)互聯(lián)模型)模型的。tcp/ip(transmission control protocol

13、/internet protocol,傳輸控制和網(wǎng)間互連協(xié)議)結(jié)構(gòu)也是基于 osi 模型但又并不嚴(yán)格遵循 osi 模型。但當(dāng)前關(guān)于如何使用分層模型來描述 tcp/ip 又沒有一個(gè)統(tǒng)一的協(xié)定。一般承認(rèn) tcp/ip 比 7 層 osi 模型層次少(3 到 5 層)。這里以 4 層tcp/ip 結(jié)構(gòu)進(jìn)行闡述。tcp/ip 結(jié)構(gòu)中忽略了 osi 模型中的某些特征,只綜合了部分相鄰 osi 層的特征并分離其它各層。信息由 4 層結(jié)構(gòu)中的應(yīng)用層傳送到物理層。當(dāng)發(fā)送數(shù)據(jù)時(shí),每層將其從上層接收到的信息作為本層數(shù)據(jù),并在數(shù)據(jù)前添加控制信息頭,然后一起傳送到下一層。每層的接收數(shù)據(jù)過程與以上發(fā)送過程正好相反,其中

14、在數(shù)據(jù)被傳送到上一層之前要將其控制信息頭移去。tcp/ip 4 層模型以及每層主要功能描述如下:應(yīng)用層(application layer)tcp/ip 組中的應(yīng)用層綜合了 osi 應(yīng)用層、表示層以及會話層的功能。因此,在 tcp/ip 結(jié)構(gòu)中,傳輸層以上的任何過程都稱之為應(yīng)用。在 tcp/ip 中,使用套接字(socket)和端口描述應(yīng)用程序通信路徑。大多數(shù)應(yīng)用層協(xié)議與一個(gè)或多個(gè)端口號相關(guān)聯(lián)。傳輸層(transport layer)tcp/ip 結(jié)構(gòu)中包含兩種傳輸層協(xié)議。其一傳輸控制協(xié)議(tcp),確保信息傳輸網(wǎng)絡(luò)環(huán)境下實(shí)時(shí)通訊技術(shù)的研究與實(shí)現(xiàn) 第一章 緒論過程。其二用戶數(shù)據(jù)報(bào)協(xié)議(udp,

15、user data protocol),直接傳輸數(shù)據(jù)報(bào),而不需要提供端對端可靠校驗(yàn)。兩種協(xié)議對應(yīng)不同的應(yīng)用具有各自功能。網(wǎng)絡(luò)層(network layer)tcp/ip 網(wǎng)絡(luò)層中的主要協(xié)議是網(wǎng)際協(xié)議(ip)。所有網(wǎng)絡(luò)層以下或以上的各層通信在跨越 tcp/ip 協(xié)議棧時(shí),都必須通過 ip 完成。此外,網(wǎng)絡(luò)層還包含部分支持性協(xié)議,實(shí)施和管理路由過程。網(wǎng)絡(luò)訪問層(network access layer)在 tcp/ip 結(jié)構(gòu)中,網(wǎng)絡(luò)訪問層由數(shù)據(jù)鏈路層和物理層合并而成。tcp/ip 網(wǎng)絡(luò)訪問層并沒有重新定義新標(biāo)準(zhǔn),而是有效利用原有數(shù)據(jù)鏈路層和物理層標(biāo)準(zhǔn)。物理層中規(guī)定了硬件通信屬性,但它不直接作為網(wǎng)絡(luò)

16、層及以上層的 tcp/ip 協(xié)議的接口。1.2 實(shí)時(shí)通訊技術(shù)的起源和發(fā)展1.2.1 實(shí)時(shí)通訊技術(shù)的起源隨著移動和互聯(lián)網(wǎng)越來越深入地走進(jìn)生活,人們渴望在任何時(shí)間、任何地點(diǎn)將盡可能多的通訊工具融合在互聯(lián)網(wǎng)同一個(gè)溝通環(huán)境下,實(shí)現(xiàn)各種通訊工具的互補(bǔ)和整合。人們不再局限于單一的網(wǎng)上或網(wǎng)下的溝通,而是希望通過跨平臺、多終端的通訊技術(shù)來實(shí)現(xiàn)一種集聲音、文字、圖像的低成本高效率的通訊服務(wù),隨之也就產(chǎn)生實(shí)時(shí)通訊(instant messenger,im)技術(shù),它將承擔(dān)起如此責(zé)任。實(shí)時(shí)通訊開山程序是 icq(i seek you)。www 和電子郵件是互聯(lián)網(wǎng)最早的大眾化應(yīng)用,此后興起的網(wǎng)絡(luò)論壇和聊天室都是網(wǎng)絡(luò)在線

17、交流功能的前身。上個(gè)世紀(jì)90 年代,四位沒有專家指導(dǎo)、也沒有受過專門教育和培訓(xùn)的以色列籍年輕人開發(fā)出了 icq,實(shí)時(shí)通訊首次出現(xiàn),創(chuàng)造了三個(gè)月內(nèi)發(fā)明因特網(wǎng)新技術(shù)的神話。icq 源自成立于 1996 年 7 月的以色列特拉維夫的 mirabils 公司,mirabils 這個(gè)單詞是拉丁文神奇的意思,而 icq 即為英文“i seek you”的簡稱,言簡意賅的名稱使人們一下記住了它。后來,美國在線公司買下 icq,三年內(nèi)分兩次共向其投入 4 億多美元,使 icq 技術(shù)得到進(jìn)一步發(fā)展和完善。2001 年 5 月,全球 icq 的用戶達(dá)到了 1 個(gè)億。如此,在接下來的幾年里,實(shí)時(shí)通訊應(yīng)用憑借其實(shí)時(shí)在

18、線交互的特性迅速風(fēng)靡全球。1.2.2 實(shí)時(shí)通訊技術(shù)的發(fā)展自 1996 年 icq 誕生以來,實(shí)時(shí)通信在短時(shí)間內(nèi)便獲得了迅速發(fā)展。在過去,人們認(rèn)為,這是一個(gè)網(wǎng)絡(luò)尋找朋友和聊天的工具。但是,隨著軟件功能和應(yīng)用的逐漸豐富和完善,一個(gè)綜合的桌面通信平臺出現(xiàn)了,實(shí)時(shí)通信變成了一個(gè)地地道道的網(wǎng)絡(luò)環(huán)境下實(shí)時(shí)通訊技術(shù)的研究與實(shí)現(xiàn) 第一章 緒論通信工具,并可能成為繼電話、電子郵件之后的第三種現(xiàn)代通信方式。如今,主流的實(shí)時(shí)通信軟件除了典型的文本消息功能外,還輔以文件共享、視音頻通信和電子白板等功能,在個(gè)人應(yīng)用和企業(yè)應(yīng)用中發(fā)揮著日益重要的作用。 網(wǎng)絡(luò)實(shí)時(shí)通訊的先驅(qū)icq 國產(chǎn)實(shí)時(shí)通訊的老大qq 網(wǎng)絡(luò)實(shí)時(shí)通訊的霸王m

19、sn 搜索網(wǎng)站的網(wǎng)絡(luò)實(shí)時(shí)通訊工具雅虎通1.3 實(shí)時(shí)通訊軟件的功能實(shí)時(shí)通訊軟件的功能通常有:(1)文字功能:實(shí)時(shí)通訊軟件使用者要能夠?qū)λx擇的通訊對象發(fā)送文字信息并能夠即刻收到反饋,這是實(shí)時(shí)通訊軟件最主要的功能,也是最基本的。(2)圖形、圖像功能:實(shí)時(shí)通訊軟件使用者要能夠通過軟件界面?zhèn)魉蛨D形、圖像來使通訊內(nèi)容更加豐富多彩。(3) 音頻、視頻功能:很多實(shí)時(shí)通訊軟件具有音頻甚至視頻通訊功能,只要使用者在計(jì)算機(jī)上配置適當(dāng)?shù)脑O(shè)備和驅(qū)動程序,就可以相互進(jìn)行語音和影像通訊。這樣人們不僅可以實(shí)現(xiàn)相互的語音聊天通訊,甚至還可以播放音樂、電影片段給對方。(4)在線查找、傳送文件、留言、接發(fā)郵件及記錄通訊信息功能,

20、有的 im 軟件還可以在網(wǎng)上發(fā)傳呼、手機(jī)短信功能??傊瑑?yōu)秀的實(shí)時(shí)通訊軟件應(yīng)該保證反應(yīng)實(shí)時(shí)、通訊迅速、信息準(zhǔn)確可靠、語音等多媒體信號保真度高、無中斷現(xiàn)象,其中反應(yīng)及時(shí)最重要。大容量的 im 軟件可以保證在線人氣旺盛。功能較強(qiáng)的實(shí)時(shí)通訊軟件應(yīng)該具有通過服務(wù)器中轉(zhuǎn)和客戶之間點(diǎn)對點(diǎn)聯(lián)系兩種通訊方式。1.4 課題研究的內(nèi)容及意義隨著社會信息化的飛速發(fā)展,越來越多的人使用 internet,在網(wǎng)上工作、學(xué)習(xí)和生活。網(wǎng)絡(luò)實(shí)時(shí)通訊系統(tǒng)是互聯(lián)網(wǎng)站一種極為常見的互動溝通交流服務(wù),它將能改善我們的工作與學(xué)習(xí)環(huán)境。網(wǎng)絡(luò)實(shí)時(shí)通訊系統(tǒng)可以向網(wǎng)絡(luò)用戶提供開放性的實(shí)時(shí)通訊服務(wù),供網(wǎng)絡(luò)用戶之間進(jìn)行聊天,傳遞消息和交流技術(shù)經(jīng)驗(yàn)

21、,而且現(xiàn)在已逐步應(yīng)用于商務(wù)領(lǐng)域。課題的實(shí)現(xiàn)將為計(jì)算機(jī)在工業(yè)實(shí)時(shí)監(jiān)控與管理系統(tǒng)中的應(yīng)用開辟了新途徑。因此,本課題的研究具有重要的理論意義和現(xiàn)實(shí)意義。本次所研制的網(wǎng)絡(luò)實(shí)時(shí)通訊軟件研制的總目標(biāo)是:開發(fā)可實(shí)際使用的聊天服務(wù)器和客戶端程序。網(wǎng)絡(luò)環(huán)境下實(shí)時(shí)通訊技術(shù)的研究與實(shí)現(xiàn) 第一章 緒論具體內(nèi)容如下:(1)開發(fā)客戶端程序:掌握網(wǎng)絡(luò)應(yīng)用程序開發(fā)原理和 windows 下的網(wǎng)絡(luò)客戶端程序開發(fā),熟練掌握 windows 套接字的使用,實(shí)現(xiàn)其基本的收發(fā)信息和文件傳輸功能。(2)開發(fā)聊天服務(wù)器程序:掌握服務(wù)器軟件設(shè)計(jì)中的一些基本問題和基本算法。(3)集成:將所開發(fā)的服務(wù)器程序和客戶端程序集成實(shí)現(xiàn)客戶間網(wǎng)絡(luò)環(huán)境下的

22、實(shí)時(shí)通訊。網(wǎng)絡(luò)環(huán)境下實(shí)時(shí)通訊技術(shù)的研究與實(shí)現(xiàn) 第二章 系統(tǒng)概述第二章 系統(tǒng)概述2.1 系統(tǒng)需求分析2.1.1 功能需求1.客戶端聊天系統(tǒng):(1) 注冊功能:輸入用戶信息,包括用戶名、密碼、性別、學(xué)歷、愛好、郵箱地址、個(gè)人簡介。如果用戶名沒有重復(fù),則把用戶存入數(shù)據(jù)庫,保存在服務(wù)器內(nèi)。(2) 登陸功能:輸入用戶名及其密碼,如果用戶名及密碼與服務(wù)器中數(shù)據(jù)庫的用戶名及密碼相匹配,便能登陸到服務(wù)器。(3) 用戶列表功能:可列出當(dāng)前所有在線聊天用戶名,這樣使得用戶更加有針對性。(4) 聊天功能:點(diǎn)擊在線好友,即可與該用戶發(fā)送聊天信息。(5) 傳輸文件功能:點(diǎn)擊在線好友,發(fā)送傳輸文件請求,得到對方同意后,即

23、可與該用戶傳輸文件。(6) 斷開功能:退出聊天服務(wù)器。2.服務(wù)器管理系統(tǒng):(1) 用戶列表功能:顯示已連接上用戶名及用戶數(shù)量。(2) 接受與斷開連接:接受客戶端連接請求;或?qū)⒛骋豢蛻魯嚅_,不讓他再次連接。(3) 用戶管理:支持客戶名稱列表請求,支持用戶名查詢;可限制用戶的加入或刪除某一用戶。2.1.2 性能需求(1) 通信時(shí)延不能大于 0.5s;(2) 通信準(zhǔn)確率達(dá)到 100%;(3) 能抗擊通信過程中的干擾;(4) 系統(tǒng)操作要求簡單,能長時(shí)間無故障運(yùn)行。網(wǎng)絡(luò)環(huán)境下實(shí)時(shí)通訊技術(shù)的研究與實(shí)現(xiàn) 第二章 系統(tǒng)概述2.2 系統(tǒng)可行性分析2.2.1 經(jīng)濟(jì)可行性本系統(tǒng)作為一個(gè)畢業(yè)設(shè)計(jì)任務(wù)進(jìn)行開發(fā),并在兩個(gè)

24、月的時(shí)間內(nèi)完成所有的開發(fā)工作,在開發(fā)過程中主要用到的軟硬件資源主要有:計(jì)算機(jī)一臺,因特網(wǎng)上的資源,jcreator,microsoft sql server2000,jdk。其中 jcreator,microsoft sql server2000,jdk 均為到商店買光盤安裝,不需要為此而有很大開銷。系統(tǒng)最終要運(yùn)行在網(wǎng)上,而宿舍的局域網(wǎng)本身已經(jīng)配有了運(yùn)行該系統(tǒng)所需要的所有環(huán)境,也不需要任何額外的花費(fèi)??偟膩碚f,系統(tǒng)開發(fā)過程以及開發(fā)完成之后的運(yùn)行都不需要多少開銷,從經(jīng)濟(jì)角度來說,開發(fā)此系統(tǒng)是完全可行的。2.2.2 操作可行性因?yàn)楸鞠到y(tǒng)的執(zhí)行只要通過客戶端即可進(jìn)行聊天,文件傳輸?shù)炔僮鳎虼讼到y(tǒng)的使

25、用者只要有基本的使用計(jì)算機(jī)的經(jīng)驗(yàn),就可以勝任此系統(tǒng)的操作,系統(tǒng)不存在操作可行性方面的問題。2.2.3 技術(shù)可行性系統(tǒng)是關(guān)于網(wǎng)絡(luò)間實(shí)時(shí)通訊的技術(shù)的方面的研究。系統(tǒng)主要存在的技術(shù)點(diǎn)如下:首先是網(wǎng)絡(luò)之間的數(shù)據(jù)傳輸,其次是服務(wù)器數(shù)據(jù)庫進(jìn)行的相關(guān)操作。對于網(wǎng)絡(luò)之間的數(shù)據(jù)傳送而言,由于采用的開發(fā)語言是 java,所以數(shù)據(jù)在網(wǎng)絡(luò)之間的傳送可以由java 的數(shù)據(jù)報(bào)通信方面的技術(shù)來解決。 對于第二個(gè)問題,也即對服務(wù)器數(shù)據(jù)庫的連接, java 通過 jdbc(java database connectivity java,數(shù)據(jù)庫連接)來支持?jǐn)?shù)據(jù)庫操作1。jdbc 是 java 語言為了支持sql 功能而提供的與數(shù)

26、據(jù)庫相聯(lián)的用戶接口,jdbc 中包括了一組由 java 語言書寫的接口和類,它們都是獨(dú)立于特定的 dbms,或者說它們可以和各種數(shù)據(jù)相關(guān)聯(lián)。有了 jdbc 以后,程序員可以方便地在 java 語言中使用 sql 語言,從而使 java 應(yīng)用程序或 java applet 可以實(shí)現(xiàn)對分布在網(wǎng)絡(luò)上的各種關(guān)系數(shù)據(jù)庫的訪問。使用了jdbc 以后,程序員可以將精力集中于上層的功能實(shí)現(xiàn),而不必關(guān)心底層與具體的dbms 的連接和訪問過程2。 microsoft 的 odbc(open data base connectivity,開放數(shù)據(jù)庫互連)是當(dāng)前與關(guān)系型數(shù)據(jù)庫連接最常用的接口。jdbc 是建立在 od

27、bc 的基礎(chǔ)上的,實(shí)際上可視為odbd 的 java 語言翻譯形式。當(dāng)然兩者都是建立在 x/open sql cli(call level interface)的抽象定義之上的。而 jdbc 與 odbc 相比,在使用上更為方便3。網(wǎng)絡(luò)環(huán)境下實(shí)時(shí)通訊技術(shù)的研究與實(shí)現(xiàn) 第二章 系統(tǒng)概述2.3 開發(fā)環(huán)境的選擇和介紹2.3.1 編程環(huán)境的選擇實(shí)時(shí)通訊軟件服務(wù)器端和客戶端要根據(jù)操作系統(tǒng)和運(yùn)行模式選擇開發(fā)工具和開發(fā)技術(shù)。而在開發(fā)此軟件時(shí)用的是 c/s(client/server,客戶端/服務(wù)器)運(yùn)行模式。在c/s 模式中,unix 操作系統(tǒng)下可選用以 c 語言、java 等工具開發(fā)。在 windows

28、操作系統(tǒng)下可選用 c、vb、delphi、java 等工具開發(fā)。java 是現(xiàn)行最佳的網(wǎng)絡(luò)應(yīng)用開發(fā)語言。java 的誕生,從根本上解決了 internet的異質(zhì),代碼交換,以及網(wǎng)絡(luò)程序的安全性等諸多問題。首先,java 是一種平臺無關(guān)語言。java 程序編譯后, 生成字節(jié)代碼(byte-code),運(yùn)行在 java 虛機(jī)器(實(shí)際上是一個(gè)解釋器)上。一個(gè)操作系統(tǒng)平臺只要提供 java 虛機(jī)器,java 程序就可以在上面運(yùn)行。從理論上講,java 程序可以運(yùn)行于所有的操作系統(tǒng)平臺上,從根本上解決了 internet 的異質(zhì)問題。其次,java 采用了可移動代碼技術(shù),在網(wǎng)絡(luò)上不僅可以進(jìn)行無格式的數(shù)據(jù)

29、信息交換,而且可以進(jìn)行程序交換。java 是比較純的面向?qū)ο笳Z言,它的絕大多數(shù)程序?qū)嶓w都是對象,利用對象的封裝性可以大大降低網(wǎng)絡(luò)上程序交換的復(fù)雜性。第三,java 可以和 html(hypertext markup language,超級文本標(biāo)識語言)無縫的集成,把靜態(tài)的超文本文件變成了可執(zhí)行的應(yīng)用程序,極大地增強(qiáng)了超文本的可交互操作性。最后,java 是一種更安全的語言,它消除了 c 和 c+中眾多的不安全因素,提供了諸多安全保障機(jī)制,例如:異常處理,代碼檢查等,比其它語言更適合網(wǎng)絡(luò)應(yīng)用軟件的開發(fā)。因此系統(tǒng)實(shí)現(xiàn)過程中選用 java 作為開發(fā)工具4。 2.3.2 數(shù)據(jù)庫的選擇本系統(tǒng)有些功能是在

30、通過數(shù)據(jù)庫操作,對數(shù)據(jù)庫的性能要求比較高。數(shù)據(jù)庫中有些表的屬性比較多,而且某些表的數(shù)據(jù)將用來檢索用戶的郵箱,所以要求數(shù)據(jù)庫的訪問能力比較強(qiáng)。本系統(tǒng)的數(shù)據(jù)庫選用 microsoft sql server 2000。 microsoft sql server 2000 在 microsoft sql server 7.0 的基礎(chǔ)上新增了許多功能,使用戶能更方便快捷地管理數(shù)據(jù)庫開發(fā)應(yīng)用程序。microsoft sql server 2000 使用了工業(yè)界最先進(jìn)的數(shù)據(jù)庫構(gòu)架,它與 microsoft windows dna 2000 平臺緊密集成具有完全的 web 功能。通過對高端硬件平臺以及最新網(wǎng)絡(luò)

31、和存儲技術(shù)的支持,可以為最大的 web 站點(diǎn)和企業(yè)級的應(yīng)用提供可擴(kuò)展性和高可靠性,使用戶能夠在 internet 商業(yè)領(lǐng)域快速創(chuàng)建應(yīng)用,從而減少了建立電子商務(wù)應(yīng)用,商業(yè)智能數(shù)據(jù)倉庫和商業(yè)線路應(yīng)用所需的時(shí)間。此外,microsoft sql server 2000 提供了重要的安全性方面的措施,保護(hù)防火墻內(nèi)和防火墻外的數(shù)據(jù)。microsoft sql server 2000 擁有安全審計(jì)工具,并提供高級的文件加密和網(wǎng)絡(luò)加密網(wǎng)絡(luò)環(huán)境下實(shí)時(shí)通訊技術(shù)的研究與實(shí)現(xiàn) 第二章 系統(tǒng)概述功能。microsoft sql server 2000 在數(shù)據(jù)庫服務(wù)器自動調(diào)整和自動管理技術(shù)方面,在數(shù)據(jù)庫領(lǐng)域中處于領(lǐng)先地

32、位,使用戶可以集中精力處理商業(yè)戰(zhàn)略上的問題,而不是去細(xì)微調(diào)整數(shù)據(jù)庫服務(wù)器的各項(xiàng)參數(shù)5。網(wǎng)絡(luò)環(huán)境下實(shí)時(shí)通訊技術(shù)的研究與實(shí)現(xiàn) 第三章 系統(tǒng)總體設(shè)計(jì)第三章 系統(tǒng)總體設(shè)計(jì)3.1 系統(tǒng)設(shè)計(jì)思想根據(jù)第二章分析,本系統(tǒng)的主要設(shè)計(jì)思想是:(1) 分析客戶端軟件的實(shí)現(xiàn)目標(biāo)及其完成的具體功能,建立一個(gè)客戶端軟件框架結(jié)構(gòu),用形式語言加以描述。(2) 分析服務(wù)器端軟件的基本實(shí)現(xiàn)目標(biāo)及其應(yīng)完成的基本功能,建立服務(wù)器端軟件框架結(jié)構(gòu),用形式語言加以描述。(3) 對服務(wù)器端的設(shè)計(jì)思想進(jìn)行細(xì)化,建立服務(wù)器端軟件實(shí)際模型。用偽碼對服務(wù)器端軟件的具體結(jié)構(gòu)加以描述。3.2 系統(tǒng)結(jié)構(gòu)圖根據(jù)第二章分析,本系統(tǒng)整體框架為圖 3-1 所示:

33、sub framesub framesub framemainframemidlevelnetlevelmessage & file renew the nodemessage & filedeclearthe nodenodedeclarationmessage&filetrasport圖 3-1 程序整體框圖網(wǎng)絡(luò)環(huán)境下實(shí)時(shí)通訊技術(shù)的研究與實(shí)現(xiàn) 第三章 系統(tǒng)總體設(shè)計(jì)開始接受用戶id及password判斷id及password正確是否又有相同用戶三層初始化工作主循環(huán)收發(fā)消息及文件結(jié)束是是否提示同一用戶以上現(xiàn)提示輸入錯誤否3.3 系統(tǒng)流程圖3.3.1 主流程圖系統(tǒng)主流程如

34、圖 3-2 所示:圖 3-2 主流程圖3.3.2 系統(tǒng)數(shù)據(jù)流程系統(tǒng)數(shù)據(jù)流為圖 3-3 所示:網(wǎng)絡(luò)輸入網(wǎng)絡(luò)層處理中間層處理界面層處理以ip為索引的數(shù)據(jù)以ip為索引的數(shù)據(jù)以id為索引的數(shù)據(jù)以id為索引的數(shù)據(jù)輸出給用戶用戶輸入網(wǎng)絡(luò)輸出圖 3-3 基本數(shù)據(jù)流圖網(wǎng)絡(luò)環(huán)境下實(shí)時(shí)通訊技術(shù)的研究與實(shí)現(xiàn) 第三章 系統(tǒng)總體設(shè)計(jì)3.3.3 系統(tǒng)的具體功能實(shí)現(xiàn)的流程圖(1) 系統(tǒng)登陸用戶的示意圖,如圖 3-4 所示: 圖 3-4 登陸用戶的示意圖(2) 系統(tǒng)聊天示意圖,如圖 3-5 所示:圖 3-5 聊天示意圖(3) 系統(tǒng)文件傳輸示意圖,如圖 3-6 所示:圖 3-6 文件傳輸示意圖主角1登陸某個(gè)朋友的子窗口收發(fā)文件

35、收發(fā)消息主角1主角2主角3*communication*communicationcommunicationsenderrequestreceiversenderaccept the requestsend filereceiver網(wǎng)絡(luò)環(huán)境下實(shí)時(shí)通訊技術(shù)的研究與實(shí)現(xiàn) 第四章 系統(tǒng)詳細(xì)設(shè)計(jì)第四章 系統(tǒng)詳細(xì)設(shè)計(jì)4.1 程序系統(tǒng)結(jié)構(gòu)4.1.1 功能劃分客戶端軟件是用戶聊天的工具,用戶界面直接影響到用戶對他的評價(jià)。要求其人機(jī)界面友好,功能比較齊全,具有足夠的健壯性。其具體功能,如圖 4-1 所示:圖 4-1 客戶端功能模塊圖服務(wù)器端軟件支持客戶端操作請求,對客戶端操作請求進(jìn)行適當(dāng)?shù)谋O(jiān)聽,已進(jìn)行適當(dāng)?shù)墓?/p>

36、理。其主要管理功能,如圖 4-2 所示:圖 4-2 服務(wù)器功能模塊圖客戶端聊天系統(tǒng)在線聊天功能新用戶注冊功能已注冊用戶登陸功能傳輸文件功能服務(wù)器管理系統(tǒng)用戶列表功能接受與斷開連接用戶管理功能網(wǎng)絡(luò)環(huán)境下實(shí)時(shí)通訊技術(shù)的研究與實(shí)現(xiàn) 第四章 系統(tǒng)詳細(xì)設(shè)計(jì)4.2 數(shù)據(jù)需求 4.2.1 數(shù)據(jù)流條目 (1) 數(shù)據(jù)流名:用戶信息 組成:用戶名+姓名+密碼+性別+出生日期+郵箱地址+個(gè)人簡介 來源:用戶輸入 去向:注冊子系統(tǒng) (2) 數(shù)據(jù)流名:已注冊信息 組成:用戶名+姓名+密碼+性別+出生日期來源:注冊子系統(tǒng) 去向:數(shù)據(jù)庫的用戶注冊表 (3) 數(shù)據(jù)流名:登錄信息 組成:用戶名+登錄密碼 來源:用戶輸入 去向:

37、系統(tǒng)用來檢索用戶信息 4.2.2 加工說明 (1) 加工名:注冊 輸入數(shù)據(jù):用戶信息 輸出數(shù)據(jù):已注冊信息 加工邏輯:根據(jù)用戶輸入的用戶信息在數(shù)據(jù)庫中作相應(yīng)的記錄。(2) 加工名:收發(fā)聊天信息 輸入數(shù)據(jù):聊天信息輸出數(shù)據(jù):聊天對象用戶接收的信息 加工邏輯:用戶在聊天信息框中輸入聊天信息,聊天對象用戶接受此信息(3) 加工名:登錄 輸入數(shù)據(jù):用戶輸入登錄信息 輸出數(shù)據(jù):進(jìn)入聊天首頁 加工邏輯:將用戶輸入的登錄信息和數(shù)據(jù)庫比較,如果是已注冊用戶則調(diào)用登陸首頁,否則根據(jù)錯誤給出相應(yīng)提示。 (4) 加工名:文件傳輸 輸入數(shù)據(jù):用戶要傳輸?shù)奈募?輸出數(shù)據(jù):聊天對象用戶接收的文件 加工邏輯:用戶選擇要傳輸

38、的文件,聊天對象用戶選擇是否接收此文件(5) 加工名:用戶管理 網(wǎng)絡(luò)環(huán)境下實(shí)時(shí)通訊技術(shù)的研究與實(shí)現(xiàn) 第四章 系統(tǒng)詳細(xì)設(shè)計(jì)輸入數(shù)據(jù):查找內(nèi)容 輸出數(shù)據(jù):查找結(jié)果 加工邏輯:根據(jù)查找內(nèi)容在所有聊天用戶的信息中找出所有的符合要求的聊天用戶的信息 4.3 系統(tǒng)具體功能的設(shè)計(jì)4.3.1 新用戶注冊新用戶點(diǎn)擊注冊按鈕后,按照提示輸入用戶信息,包括用戶名、密碼、性別、學(xué)歷、愛好、郵箱地址、個(gè)人簡介。如果用戶名沒有重復(fù),則把用戶存入數(shù)據(jù)庫,保存在服務(wù)器內(nèi)。如圖 4-1 所示。圖 4-1 注冊流程圖主要程序代碼如下:try class.forname(sun.jdbc.odbc.jdbcodbcdriver);

39、/連接數(shù)據(jù)庫connection c2=drivermanager.getconnection(jdbc:odbc:javaicq, , );string newsql=insert into cq(name,password,sex,hobit,email,info) values(?,?,?,?,?,?);/準(zhǔn)備接受用戶名,密碼,性別,愛好,email,個(gè)人簡介等信息 preparedstatement prepare2=c2.preparecall(newsql); string name=in.readline().trim(); string password=in.readline

40、().trim(); string sex=in.readline().trim();開始點(diǎn)擊注冊按鈕輸入用戶名信息是否存在相同用戶將用戶信息存入服務(wù)器端結(jié)束yn網(wǎng)絡(luò)環(huán)境下實(shí)時(shí)通訊技術(shù)的研究與實(shí)現(xiàn) 第四章 系統(tǒng)詳細(xì)設(shè)計(jì) string email=in.readline().trim(); string hobit=in.readline().trim(); int picindex=integer.parseint(in.readline(); prepare2.clearparameters(); prepare2.setstring(1,name); prepare2.setstring(

41、2,password); prepare2.setstring(3,hobit); prepare2.setstring(4,email); prepare2.setstring(5,info); prepare2.setint(6,picindex); int r3=prepare2.executeupdate();/執(zhí)行數(shù)據(jù)庫添加4.3.2 用戶登陸用戶點(diǎn)擊登陸按鈕后,按照提示輸入用戶名及其密碼,如果用戶名及密碼與服務(wù)器中數(shù)據(jù)庫的用戶名及密碼相匹配,便能登陸到服務(wù)器,如圖 4-2 所示。圖 4-2 用戶登陸流程圖主要程序代碼如下:public void run()/線程監(jiān)聽函數(shù)try wh

42、ile(true) string str=in.readline();/取得輸入字符串 if(str.equals(end)break;/如果是結(jié)束就關(guān)閉連接開始點(diǎn)擊登陸按鈕輸入用戶名,密碼是否存在此用戶密碼是否相同進(jìn)入程序主界面結(jié)束yynn網(wǎng)絡(luò)環(huán)境下實(shí)時(shí)通訊技術(shù)的研究與實(shí)現(xiàn) 第四章 系統(tǒng)詳細(xì)設(shè)計(jì) else if(str.equals(login) /如果是登錄 try class.forname(sun.jdbc.odbc.jdbcodbcdriver);/連接數(shù)據(jù)庫 connection c=drivermanager.getconnection(jdbc:odbc:javaicq, ,

43、); string sql=select name,password from cq where yname=?; /準(zhǔn)備從數(shù)據(jù)庫選擇用戶名和密碼 preparedstatement prepare=c.preparecall(sql);/設(shè)定數(shù)據(jù)庫查尋條件 string yname=in.readline(); int g=integer.parseint(yname);/取得輸入的用戶名 system.out.println(yname); string passwd=in.readline().trim();/取得輸入的密碼 system.out.println(passwd); pre

44、pare.clearparameters(); prepare.setint(1,g);/設(shè)定參數(shù) resultset r=prepare.executequery();/執(zhí)行數(shù)據(jù)庫查尋 if(r.next()/以下比較輸入的號碼于密碼是否相同 string pass=r.getstring(password).trim(); system.out.println(pass); if(passwd.regionmatches(0,pass,0,pass.length() out.println(ok);/如果相同就告訴客戶 ok/并且更新數(shù)據(jù)庫用戶為在線/以及注冊用戶的 ip 地址 /*reg

45、ister ipaddress string setip=update cq set ip=? where yname=?; preparedstatement prest=c.preparecall(setip); prest.clearparameters(); prest.setstring(1,socket.getinetaddress().gethostaddress(); prest.setint(2,g); int set=prest.executeupdate(); system.out.println(set); /*ipaddress /set status online

46、string status=update cq set status=1 where yaname=?; preparedstatement prest2=c.preparecall(status); prest2.clearparameters();網(wǎng)絡(luò)環(huán)境下實(shí)時(shí)通訊技術(shù)的研究與實(shí)現(xiàn) 第四章 系統(tǒng)詳細(xì)設(shè)計(jì) prest2.setint(1,g); int set2=prest2.executeupdate(); system.out.println(set2); /set online/否則告訴客戶失敗 else out.println(false);r.close();c.close();

47、else out.println(false); system.out.println(false); r.close(); c.close(); catch (exception e)e.printstacktrace(); socket.close(); /end login /登錄結(jié)束4.3.3 收發(fā)信息用戶列表中列出當(dāng)前所有在線聊天用戶名,這樣使得用戶更加有針對性。點(diǎn)擊想要聊天的在線好友用戶名,即可與該發(fā)送聊天信息。如圖 4-3 所示。 圖 4-3 收發(fā)信息流程圖開始輸入聊天信息是否在線將聊天信息發(fā)送給對方結(jié)束yn網(wǎng)絡(luò)環(huán)境下實(shí)時(shí)通訊技術(shù)的研究與實(shí)現(xiàn) 第四章 系統(tǒng)詳細(xì)設(shè)計(jì)4.3.4 文件

48、傳輸點(diǎn)擊想要聊天的在線好友用戶名,發(fā)送文件傳輸請求,得到該用戶同意后,即可與該用戶進(jìn)行文件傳輸。如圖 4-4 所示。圖 4-4 文件傳輸流程圖java 消息類為實(shí)時(shí)通信系統(tǒng)中,客戶端與服務(wù)器端、客戶端與客戶端的通信基礎(chǔ)類。message 為消息類的基類,ordinarymsg、registermsg、findersetmsg、findermsg、loginedmsg、informlogonmsg 為它的派生類。message 消息基類,包含有所有消息的類型,以及基本屬性。registermsg 為注冊消息類,包含有所有注冊屬性。oridnarymsg 為普通的消息類,主要用于聊天、登陸、注銷等

49、消息。findermsg 為搜索請求消息類,包含有搜索類型,請求內(nèi)容。userbasicinfor 類型的網(wǎng)友數(shù)組。loginedmsg 為返回的登陸消息類,其中包含有在線好友的列表。informlogonmsg 為通知在線好友的消息類,其中主要包含有當(dāng)前用戶的 ip 地址與端口6。以下為聊天和傳輸文件的主要程序代碼:private class messageclient /消息的發(fā)送,包括聊天信息,文件傳輸?shù)穆?lián)絡(luò)信息private message msg; private datagramsocket socket; 開始發(fā)送文件傳輸請求是否同意將文件發(fā)送給對方結(jié)束yn網(wǎng)絡(luò)環(huán)境下實(shí)時(shí)通訊技術(shù)

50、的研究與實(shí)現(xiàn) 第四章 系統(tǒng)詳細(xì)設(shè)計(jì)public messageclient() try socket = new datagramsocket(7000); catch(throwable t) t.printstacktrace(); public void send(msg2 msg) /msg2 的發(fā)送 try /string message = msg1.getmessage(); bytearrayoutputstream bytestream = new bytearrayoutputstream(5000); objectoutputstream os = new objecto

51、utputstream(new bufferedoutputstream(bytestream); os.writeobject(msg); os.flush(); byte sendbuf = bytestream.tobytearray(); datagrampacket packet = new datagrampacket(sendbuf,sendbuf.length, inetaddress.getbyname(msg.getdnetaddress(),7002); /socket = new datagramsocket(7000); os.close(); socket.send

52、(packet); system.out.println(packet.getaddress().gethostaddress()+msg.getinfo(); catch(throwable t) t.printstacktrace(); /#private class messageserver extends thread /消息的接收,包括聊天信息,文件傳輸?shù)穆?lián)絡(luò)信息 private msg2 msg; private datagrampacket packet; private datagramsocket socket; private byte recvbuf = new byt

53、e5000; private arraylist list=new arraylist();網(wǎng)絡(luò)環(huán)境下實(shí)時(shí)通訊技術(shù)的研究與實(shí)現(xiàn) 第四章 系統(tǒng)詳細(xì)設(shè)計(jì)public messageserver() try packet = new datagrampacket(recvbuf,recvbuf.length); socket = new datagramsocket(7002); this.start(); catch(exception e) public void run() try while(true) socket.receive(packet); bytearrayinputstream

54、 bytestream = new bytearrayinputstream(recvbuf); objectinputstream is = new objectinputstream(new bufferedinputstream(bytestream); object o = is.readobject(); msg = (msg2)o; is.close(); system.out.println(packet.getaddress().gethostname()+&+msg.getinfo(); if(act2!=null) act2.act(msg); catch(thro

55、wable t) t.printstacktrace(); private class relowmsg implements mylistenerpublic void act(message msg)/用 messageclient 發(fā)消息system.out.println(/用 messageclient 發(fā)消息);subclient.send(msg2)msg);網(wǎng)絡(luò)環(huán)境下實(shí)時(shí)通訊技術(shù)的研究與實(shí)現(xiàn) 第四章 系統(tǒng)詳細(xì)設(shè)計(jì)4.4 數(shù)據(jù)庫設(shè)計(jì)后臺數(shù)據(jù)庫系統(tǒng)在服務(wù)器端建立,對用戶是完全透明的。本數(shù)據(jù)庫系統(tǒng)僅在服務(wù)器端運(yùn)行,不允許在客戶端直接對它進(jìn)行操作。如果需要,用戶可以向服務(wù)器端發(fā)出請求,

56、由服務(wù)器端進(jìn)行處理。由于僅在服務(wù)端運(yùn)行,該數(shù)據(jù)庫不涉及網(wǎng)絡(luò)特性,也不考慮客戶服務(wù)機(jī)制,所以其結(jié)構(gòu)應(yīng)該力求簡單方便、實(shí)用高效。最底層的數(shù)據(jù)庫服務(wù)器采用 sqlserver。在數(shù)據(jù)庫中間層利用 jdbc 與數(shù)據(jù)庫底層的管理系統(tǒng)相連,執(zhí)行查詢、插入、修改等操作7。sqlserver 底層數(shù)據(jù)庫管理系統(tǒng) sqlserver 是 microsoft 推出的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),功能強(qiáng)大且易用。本數(shù)據(jù)庫底層利用 sqlserver 來實(shí)現(xiàn),可靠性高。該數(shù)據(jù)庫主要是用來存儲聊天用戶的注冊昵稱和密碼、用戶資料。數(shù)據(jù)庫創(chuàng)建好之后就要和 jcreator 進(jìn)行連接。在 java 中連接 sqlserver 數(shù)據(jù)庫

57、通常使用 dao,rdo,ado 及 jdbc 等連接方法。但是無論是 dao,rdo 還是ado 都是針對于特定操作系統(tǒng)平臺上的數(shù)據(jù)庫設(shè)計(jì)的,這和 java 的跨平臺性并不統(tǒng)一。而 jdbc 才是一個(gè)和 java 風(fēng)格統(tǒng)一的跨平臺程序。jdbc 中間層驅(qū)動數(shù)據(jù)庫連接的中間層用 jdbc 技術(shù)來實(shí)現(xiàn)。sqlserver 對odbc 驅(qū)動程序提供得很完善,因此,在這里需要結(jié)合 jdbc/odbc 網(wǎng)橋技術(shù)。通過該網(wǎng)橋,jdbc 可以訪問 sqlserver 數(shù)據(jù)庫。本畢業(yè)設(shè)計(jì)的數(shù)據(jù)庫名為:chat。其中包含用戶信息表(表 4-1),表中存有用戶信息:用戶名,密碼,性別,學(xué)歷,愛好,郵箱地址,個(gè)人

58、簡介。表 4-1 用戶信息表屬性名屬性名數(shù)據(jù)類型數(shù)據(jù)類型大小大小用戶名(主碼)文本10密碼數(shù)字整型性別文本10學(xué)歷文本10愛好文本10郵箱地址文本20個(gè)人簡介文本200網(wǎng)絡(luò)環(huán)境下實(shí)時(shí)通訊技術(shù)的研究與實(shí)現(xiàn) 第四章 系統(tǒng)詳細(xì)設(shè)計(jì)4.5 關(guān)鍵技術(shù)的分析4.5.1 客戶機(jī)連接與服務(wù)器的連接服務(wù)器與客戶機(jī)(程序)都使用同樣的端口號,而且客戶機(jī)利用本地主機(jī)地址連接位于同一臺機(jī)器中的服務(wù)器(程序),所以不必在一個(gè)物理網(wǎng)絡(luò)里完成測試。serversocket 需要的只是一個(gè)端口編號,不需要 ip 地址(因?yàn)樗驮谶@臺機(jī)器上運(yùn)行)。調(diào)用 accept()時(shí),方法會暫時(shí)陷入停頓狀態(tài)(堵塞),直到某個(gè)客戶嘗試同它建

59、立連接。建好一個(gè)連接以后,accept()就會返回一個(gè) socket 對象,它是那個(gè)連接的代表。清除套接字的責(zé)任在這里得到了處理。假如 serversocket 構(gòu)建器失敗,則程序簡單地退出。在這種情況下,main()會“擲”出一個(gè) ioexception 違例,所以不必使用一個(gè) try 塊。若 serversocket 構(gòu)建器成功執(zhí)行,則其他所有方法調(diào)用都必須到一個(gè) try-finally 代碼塊里尋求保護(hù),以確保無論塊以什么方式留下,serversocket 都能正確地關(guān)閉。同樣的道理也適用于由 accept()返回的 socket。若 accept()失敗,那么我們必須保證 socket

60、 不再存在或者含有任何資源,以便不必清除它們。但假若執(zhí)行成功,則后續(xù)的語句必須進(jìn)入一個(gè) try-finally 塊內(nèi),以保障在它們失敗的情況下,socket 仍能得到正確的清除8。在編寫本系統(tǒng)程序時(shí),特別注意了自動刷新機(jī)制的使用。每次刷新緩沖區(qū)時(shí),必須創(chuàng)建和發(fā)出一個(gè)數(shù)據(jù)包。這正是我們所希望的,因?yàn)榧偃绨鼉?nèi)包含了還沒有發(fā)出的文本行,服務(wù)器和客戶機(jī)之間的相互“握手”就會停止。也就是說,一行的末尾就是一條消息的末尾。但在其他許多情況下,消息并不是用行分隔的,所以不如不用自動刷新機(jī)制,而用內(nèi)建的緩沖區(qū)判決機(jī)制來決定何時(shí)發(fā)送一個(gè)數(shù)據(jù)包。這樣一來,也就可以發(fā)出較大的數(shù)據(jù)包,而且處理進(jìn)程也能加快。無限 while 循環(huán)從 buffere

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論