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