網(wǎng)絡(luò)聊天工具的設(shè)計(jì)與開發(fā)
專業(yè):計(jì)算機(jī)科學(xué)與技術(shù) 班級:計(jì)(092)本 姓名:鄭肖駿 指導(dǎo)教師:羅江英
摘要 隨著互聯(lián)網(wǎng)的快速發(fā)展,網(wǎng)絡(luò)聊天工具已經(jīng)作為一種重要的信息交流工具,受到越來越多的網(wǎng)民的青睞。目前,出現(xiàn)了很多非常不錯的聊天工具,其中應(yīng)用比較廣泛的有Netmeeting、騰訊QQ、MSN-Messager等等。網(wǎng)絡(luò)聊天工具作為一種新型的通信和交流工具,突破了地域的限制,可以提供更為便捷、靈活、全面的音、視頻信息的傳遞和服務(wù),具有極其廣泛的發(fā)展前景。本
論文提出一個基于C#語言運(yùn)行于.NET平臺上的局域網(wǎng)聊天器的解決方案,并對其具體應(yīng)用中的實(shí)現(xiàn)模塊進(jìn)行了剖析。該聊天器包括服務(wù)器端和客戶端兩個模塊,服務(wù)端為客戶端提供用戶信息和IP地址,客戶端間可以進(jìn)行文字通信。文字聊天采用TCP傳輸模式。程序使用Socket以完成服務(wù)器端和客戶端間的通信,使用多線程技術(shù)支持多用戶操作。
關(guān)鍵詞 多線程 TCP傳輸模式 Socket
Design And Development Of Net Chating Tool
Profession:Computer Science And Technology Class:J092 Name:*iaojun Zheng Instructor:Jiangying Luo
Abstract Along with the fast development of Internet, the network chating tool has already become one kind of important communication tools and received more and more web cams favor. At present, many e*tremely good chating tools have appeared . for e*ample, Netmeeting, QQ, MSN-Messager and so on. As a new tool about communication, net chating system has broken through geographical restrictions, has provides more convenient, fle*ible and complete transmission and service. Furthermor
……(新文秘網(wǎng)http://120pk.cn省略1693字,正式會員可完整閱讀)……
速,能同時(shí)與多個好友進(jìn)行通訊的工具的出現(xiàn),而網(wǎng)絡(luò)聊天工具就滿足了這些需求。在互聯(lián)網(wǎng)技術(shù)的發(fā)展的今天,聊天軟件也在以前所未有的速度改變著人們的生活方式,它必定會成為人們網(wǎng)絡(luò)生活不可缺少的一部分。
廣域網(wǎng)上的即時(shí)通信工具,如今一般采用UDP或者 TCP協(xié)議體系來實(shí)現(xiàn),開發(fā)技術(shù)已經(jīng)比較成熟,這些軟件,在使用方面各有特色,在實(shí)現(xiàn)方面也各有所長,但基于這些產(chǎn)品正在商業(yè)運(yùn)營階段,其實(shí)現(xiàn)方式屬于商業(yè)機(jī)密,具體細(xì)節(jié)不可能得知,但是它在大的方面無非就是利用各種平臺上的網(wǎng)絡(luò)通信接口,建構(gòu)基于TCP/IP,或者UDP協(xié)議的軟件產(chǎn)品。
網(wǎng)絡(luò)的飛速發(fā)展使網(wǎng)絡(luò)應(yīng)用程序的開發(fā)地位顯的越來越重要,而網(wǎng)絡(luò)應(yīng)用程序的開發(fā)和傳統(tǒng)應(yīng)用程序的開發(fā)在思想和實(shí)現(xiàn)上有很大的區(qū)別,隨著網(wǎng)絡(luò)技術(shù)和數(shù)據(jù)庫管理系統(tǒng)的發(fā)展,C/S體系結(jié)構(gòu)在軟件的開發(fā)中越來越流行。因?yàn)檫@種結(jié)構(gòu)的應(yīng)用軟件可以充分發(fā)揮網(wǎng)絡(luò)的作用和數(shù)據(jù)庫系統(tǒng)的優(yōu)勢,以滿足人們各種應(yīng)用的需求。
本文首先簡介涉及的相關(guān)技術(shù)與基本知識,然后闡述本軟件的功能,再具體分析各個模塊的功能及具體實(shí)現(xiàn)方法。
第一章 概述
1.1 本課題研究的意義
21世紀(jì)是信息的時(shí)代,隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,信息在傳遞方面也有了嶄新的一頁。現(xiàn)今聊天軟件成為信息傳遞最為廣泛的應(yīng)用工具,它發(fā)揮了即時(shí)性通信的特點(diǎn),可以讓用戶在第一時(shí)間內(nèi)得到信息的交流。人性化的設(shè)計(jì)讓每個用戶都可以得心應(yīng)手的使用,從而獲得更多人的青睞。Internet的出現(xiàn)連通了整個世界,而聊天軟件的出現(xiàn)則連通了每一位網(wǎng)上的用戶。隨著網(wǎng)絡(luò)應(yīng)用的發(fā)展,聊天軟件已經(jīng)成為最熱門的網(wǎng)絡(luò)應(yīng)用之一。經(jīng)歷了近幾年突飛猛進(jìn)的發(fā)展之后,即時(shí)通訊工具早已不再是簡單的互聯(lián)網(wǎng)通訊工具,它已經(jīng)成為一個集互動交流、休閑娛樂、信息管理為一體的多元化互聯(lián)網(wǎng)應(yīng)用平臺。
系統(tǒng)開發(fā)任務(wù)主要包括前臺界面設(shè)計(jì)和后臺數(shù)據(jù)庫管理的設(shè)計(jì)。將理論與實(shí)踐相結(jié)合,運(yùn)用Visual Studio 2008開發(fā)工具,設(shè)計(jì)一個使用簡單,系統(tǒng)資源消耗少的完整的網(wǎng)絡(luò)聊天軟件系統(tǒng),可以給人們彼此之間的溝通帶來方便,并且通過聊天軟件建立深刻的友情,讓人們在互聯(lián)網(wǎng)上的交流更加充滿活力與生機(jī)。
1.2 國內(nèi)外的發(fā)展現(xiàn)狀
1996年11月ICQ在全球發(fā)布,拉開了互聯(lián)網(wǎng)IM(Instant Messenger,即時(shí)通訊)應(yīng)用的序幕。就是這樣一款小軟件在短短數(shù)年時(shí)間里發(fā)展出一個巨大的IM產(chǎn)業(yè)。
時(shí)至今日,即時(shí)性通訊工具早已成為最熱門的網(wǎng)絡(luò)應(yīng)用之一。國內(nèi)外的聊天工具舉不勝數(shù)。ICQ作為全球第一款即時(shí)性通訊工具,在經(jīng)過短短數(shù)年的發(fā)展,其行業(yè)內(nèi)的地位如今已是無人能夠撼動。ICQ名字取自英文“I seek you”的諧音,即是“我找你”的意思。最初的ICQ只有兩個特性,即用戶列表和即時(shí)聊天。但一經(jīng)推出就受到眾多網(wǎng)民的喜愛,6個月內(nèi)其注冊用戶迅速攀升至85萬,1998年它的用戶數(shù)量更是翻了10數(shù)倍,達(dá)到了1200萬人。ICQ的迅猛發(fā)展也讓當(dāng)時(shí)的互聯(lián)網(wǎng)領(lǐng)頭羊Yahoo和在桌面軟件領(lǐng)域獨(dú)步天下的微軟嗅到了商機(jī),它們分別推出了Yahoo Messenger、MSN Messenger和曇花一現(xiàn)的MS Chat。即時(shí)通訊市場雛形頓顯,有了國際互聯(lián)網(wǎng)巨頭和最大軟件公司的融入,即時(shí)通訊時(shí)代的大幕就此徐徐拉開。
當(dāng)ICQ風(fēng)行全球的時(shí)候,在國內(nèi)各種仿ICQ的中文IM軟件也紛紛推出,時(shí)至今日,占據(jù)國內(nèi)的市場的主要是騰訊公司的QQ、微軟的MSN、雅虎的雅虎通等。其中騰訊公司的QQ以占據(jù)了國內(nèi)70%以上的市場。
隨著IM應(yīng)用的深入,其功能早已超越了初期的即時(shí)文字聊天。表情圖標(biāo)早已成為各個IM軟件的標(biāo)準(zhǔn)功能,文件傳輸、語音/視頻聊天、游戲、網(wǎng)上交友等高級功能也正越來越多地被集成進(jìn)入IM應(yīng)用。事實(shí)表明,現(xiàn)在的IM已不再是一個簡單的溝通工具,而是一個信息資訊、交流互動、休閑娛樂中心,IM平臺上的語音、視頻點(diǎn)播、信息共享等新應(yīng)用層出不窮。發(fā)展到現(xiàn)在,IM軟件越來越成熟,IM產(chǎn)業(yè)鏈也已經(jīng)形成,已經(jīng)成為現(xiàn)代人和現(xiàn)代經(jīng)濟(jì)中不可或缺的一部份,相信未來IM軟件的道路會更加寬廣和精彩。
1.3 聊天工具開發(fā)的目標(biāo)
設(shè)計(jì)一個基于WINDOWS平臺的類似于QQ的即時(shí)聊天工具,實(shí)現(xiàn)局域網(wǎng)內(nèi)聊天與傳遞信息,工具簡單易用且占空間少。采用客戶機(jī)/服務(wù)器的架構(gòu)模式,由客戶端程序和服務(wù)器程序外加服務(wù)器端用于存放客戶數(shù)據(jù)的數(shù)據(jù)庫組成,使用.Net提供的Socket類以及.Net的多線程功能,在不同的端口上部署各類服務(wù),可以在單個程序中同時(shí)運(yùn)行多個不同進(jìn)程,而客戶端通過Socket發(fā)送信息給服務(wù)器,從而實(shí)現(xiàn)多點(diǎn)對多點(diǎn)的聊天。該軟件具有聊天軟件的一般功能,模塊排版整齊,能實(shí)現(xiàn)用戶登錄、用戶注冊、用戶資料修改、查詢添加好友、刪除好友、好友信息查詢、好友分組管理、好友分組修改移動、好友之間實(shí)現(xiàn)文字傳輸、設(shè)置聊天文本字體,并保證數(shù)據(jù)安全性和系統(tǒng)的可行性。
第二章 開發(fā)平臺與相關(guān)技術(shù)簡介
2.1 程序開發(fā)環(huán)境
系統(tǒng)開發(fā)平臺:Microsoft Visual Studio 2008
系統(tǒng)開發(fā)語言:C#
運(yùn)行平臺:Window2000,Windows *p,Windows 7
運(yùn)行環(huán)境:Microsoft .Net Framework 3.5
數(shù)據(jù)庫系統(tǒng):SQL Server 2005
2.2 C# 簡介
C#是微軟公司發(fā)布的一種面向?qū)ο蟮摹⑦\(yùn)行于.NET Framework之上的高級程序設(shè)計(jì)語言。并定于在微軟職業(yè)開發(fā)者論壇(PDC)上登臺亮相。C#是微軟公司研究員Anders Hejlsberg的最新成果。C#看起來與Java有著驚人的相似;它包括了諸如單一繼承、接口、與Java幾乎同樣的語法和編譯成中間代碼再運(yùn)行的過程。但是C#與Java有著明顯的不同,它借鑒了Delphi的一個特點(diǎn),與COM(組件對象模型)是直接集成的,而且它是微軟公司 .NET windows網(wǎng)絡(luò)框架的主角。
C#是一種安全的、穩(wěn)定的、簡單的、優(yōu)雅的,由C和c++衍生出來的面向?qū)ο蟮木幊陶Z言。它在繼承C和C++強(qiáng)大功能的同時(shí)去掉了一些它們的復(fù)雜特性(例如沒有宏以及不允許多重繼承)。C#綜合了vb簡單的可視化操作和C++的高運(yùn)行效率,以其強(qiáng)大的操作能力、優(yōu)雅的語法風(fēng)格、創(chuàng)新的語言特性和便捷的面向組件編程的支持成為.NET開發(fā)的首選語言。
2.3 MicroSoft .NET Framework 簡介
Microsoft .NET Framework是用于Windows的新托管代碼編程模型。它強(qiáng)大功能與新技術(shù)結(jié)合起來,用于構(gòu)建具有視覺上引人注目的用戶體驗(yàn)的應(yīng)用程序,實(shí)現(xiàn)跨技術(shù)邊界的無縫通信,并且能支持各種業(yè)務(wù)流程。
在今天的軟件環(huán)境中,應(yīng)用程序的來源很多,它們執(zhí)行很多任務(wù)。對應(yīng)用程序代碼的信任是一個主要需求,因?yàn)槲覀冋l也不想軟件或信息遭到破壞。給予許可的安全策略不會允許對敏感信息的不適當(dāng)?shù)脑L問,或?qū)⒈镜貦C(jī)器暴露給惡意的程序或甚至是有平常錯誤的代碼。
過去,安全結(jié)構(gòu)提供了基于用戶帳號的隔離和訪問控制--在這些限制內(nèi)給予代碼完全訪問權(quán),并假定由特定用戶可運(yùn)行的代碼具有相同的信任度。不幸的是,如果所有程序都代表某用戶運(yùn)行,根據(jù)用戶對代碼的隔離對于保護(hù)一個程序不被其它用戶使用是不夠的。另一種情況,不能被完全信任的代碼經(jīng)常被轉(zhuǎn)移到"沙箱"模型中執(zhí)行,在此代碼運(yùn)行于隔離環(huán)境,而不會訪問大部分的服務(wù)。
對今天應(yīng)用的成功的安全解決方案必須能強(qiáng)化兩個安全模型間的平衡。它必須提供對資源的訪問,以便以完成有用的工作,它需要對應(yīng)用程序的安全性作細(xì)致的控制以確保代碼被識別,檢測,并給予合適的安全級別。.NET Framework就提供了一個這樣的安全模型。
2.4 .NET 與多線程技術(shù)
多線程是為了使得多個線程并行的工作以完成多項(xiàng)任務(wù),以提高系統(tǒng)的效率,并且避免因耗時(shí)較長的工作線程的等待導(dǎo)致UI線程阻塞。線程是在同一時(shí)間需要完成多項(xiàng)任務(wù)的時(shí)候被實(shí)現(xiàn)的。
多線程機(jī)制使應(yīng)用程序能夠并行執(zhí)行,而且同步機(jī)制保證了對共享數(shù)據(jù)的正確操作。通過使用多線程,程序設(shè)計(jì)者可以分別用不同的線程完成特定的行為,而不需要采用全局的事件循環(huán)機(jī)制,這樣就很容易地實(shí)現(xiàn)網(wǎng)絡(luò)上的實(shí)時(shí)交互行為
在本質(zhì)上和結(jié)構(gòu)來說,.NET是一個多線程的環(huán)境。有兩種主要的多線程方法是.NET所提倡的:使用ThreadStart來開始你自己的進(jìn)程,直接的 (使用ThreadPool.QueueUserWorkItem)或者間接的(比如Stream.BeginRead,或者調(diào)用 BeginInvoke)使用ThreadPool類。線程的基類是System.Threading。所有線程通過CLI來進(jìn)行管理。
2.5 C/S結(jié)構(gòu)與WINDOWS SOCKETS網(wǎng)絡(luò)編 ……(未完,全文共26438字,當(dāng)前僅顯示4755字,請閱讀下面提示信息。
收藏《網(wǎng)絡(luò)聊天工具的設(shè)計(jì)與開發(fā)》)