版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 摘 要</b></p><p> 隨著Internet技術(shù)的飛速發(fā)展,網(wǎng)絡(luò)已經(jīng)成為人們生活中不可缺少的一部分,通過聊天室在線聊天已成為網(wǎng)絡(luò)上人與人之間溝通、交流和聯(lián)系的一種方式。</p><p> 為此,越來越多的網(wǎng)站開始提供在線聊天的功能。與此同時,聊天室也以其方便、快捷、低成本等優(yōu)勢受到眾多企業(yè)的青睞,很多企業(yè)的網(wǎng)站中也加入了聊
2、天室模塊,以達到增進企業(yè)與消費者之間、消費者與消費者之間相互交流的目的。</p><p> 本文是軟件工程在線聊天室系統(tǒng)的開發(fā)說明,重點運用軟件工程知識對系統(tǒng)進行分析、設(shè)計實現(xiàn)和測試的思想的具體描述,其中包括軟件生命周期的三個主要方面:軟件定義(問題定義、可行性研究、需求分析)、軟件開發(fā)(總體設(shè)計、詳細設(shè)計、編碼、測試)和運行維護。通過實際的運用軟件工程知識處理問題,加強程序的規(guī)范性、清晰性、可靠性,并且使得程
3、序易于維護。本軟件使用C#進行編寫,具有良好的兼容性且易于實現(xiàn)。聊天室操作簡潔容易上手、結(jié)構(gòu)簡單、查找方便、實用性強。</p><p> 關(guān)鍵詞:網(wǎng)絡(luò) 通信 套接字 連接</p><p><b> Abstract</b></p><p> With the rapid development of Internet technology
4、, network has become people to the indispensable part in life, through online chat has become a chat room on the network communication, communication between people and contact a kind of means. </p><p> The
5、refore, more web sites began to provide online to chat function. At the same time, the chat room with its convenient, quick, low cost advantage by numerous enterprise's favor, the many enterprise website also joined
6、the chat room, so as to promote enterprise module between consumers and consumers and consumers, communication between purpose. </p><p> This paper is a software engineering online chat room that focus on t
7、he development of the system, using the software engineering knowledge for system analysis, design and test of thought to realize description, including software life cycle of the three main aspects: software definition
8、(problem definition, feasibility study, needs analysis), software development (overall design, detailed design, code, test) and operation and maintenance. Through the practical using the software engineering kno</p>
9、;<p> Keyword: Network, communication, sockets, connection </p><p><b> 目 錄</b></p><p><b> 摘 要2</b></p><p> Abstract3</p><p><b
10、> 目 錄4</b></p><p><b> 第1章 緒論1</b></p><p> 1.1課題研究現(xiàn)狀分析1</p><p> 1.1.1本領(lǐng)域內(nèi)已開展的研究工作2</p><p> 1.1.2已經(jīng)取得的研究成果3</p><p> 1.2
11、選題的目的及意義4</p><p> 1.3課題研究的主要內(nèi)容5</p><p> 第2章 系統(tǒng)需求分析6</p><p> 2.1 問題的提出6</p><p> 2.2 系統(tǒng)的設(shè)計目標(biāo)6</p><p> 第3章 系統(tǒng)開發(fā)的技術(shù)背景8</p><p> 3.1
12、Socket套接字介紹8</p><p> 3.2 .NET Framework 2.0介紹14</p><p> 第4章 系統(tǒng)具體實現(xiàn)15</p><p> 4.1概要設(shè)計15</p><p> 4.2定義服務(wù)器端和客戶端的通信結(jié)構(gòu)及含義16</p><p> 4.2.1客戶端16</p
13、><p> 4.2.2服務(wù)器端17</p><p> 4.3客戶端具體實現(xiàn)17</p><p> 4.4服務(wù)器端具體實現(xiàn)17</p><p> 第5章 系統(tǒng)測試19</p><p> 第6章 系統(tǒng)模塊設(shè)計及調(diào)試20</p><p> 6.1 系統(tǒng)登錄界面20</p&
14、gt;<p> 6.2 系統(tǒng)維護界面20</p><p> 6.3 用戶聊天界面21</p><p> 6.3.1聊天室模式21</p><p> 6.3.2私人聊天模式22</p><p> 6.4系統(tǒng)開發(fā)思路22</p><p> 6.5需求的總結(jié)22</p>&
15、lt;p><b> 結(jié) 論25</b></p><p><b> 致 謝26</b></p><p><b> 參考文獻27</b></p><p><b> 附 錄128</b></p><p><b> 附 錄
16、230</b></p><p><b> 第1章 緒論</b></p><p> 隨著現(xiàn)代技術(shù)的不斷輸入和信息化的廣泛普及,網(wǎng)絡(luò)作為一種新興事物,在近些年得到了前所未有的普及和深入,網(wǎng)絡(luò)上的各種應(yīng)用層出不窮,給各個階層、各個年齡段的用戶提供了不同的個性化的服務(wù)。而現(xiàn)代中小型企業(yè)的領(lǐng)導(dǎo)認(rèn)識到進一步提高企業(yè)信息化的必要性。為使企業(yè)能在瞬息萬變的信息時代
17、生存下去,適應(yīng)激烈的市場競爭,現(xiàn)代企業(yè)要求正加員工之間的交流和通信能力,尤其是領(lǐng)導(dǎo)和員工之間的共同能力,實時的交流系統(tǒng)就是在這種條件下誕生的。系統(tǒng)開發(fā)是一個十分復(fù)雜的系統(tǒng)工程。這里對系統(tǒng)開發(fā)的基本過程和方法進行介紹,列出相關(guān)文檔的示例并加以說明。</p><p> 要提高市場競爭力,就要對市場作充分的調(diào)查和詳細的研究,同時也要有好的客戶服務(wù)。企業(yè)要在復(fù)雜的環(huán)境下作出對策。員工與員工 員工與領(lǐng)導(dǎo)間的即時交流尤為重
18、要,網(wǎng)絡(luò)在線聊天系統(tǒng)對于企業(yè)來說就是一種交流和通信的平臺,本系統(tǒng)能夠成為中小型企業(yè)的交流通信的理想平臺。如能做到信息的及時的反饋,即時的處理并作出相應(yīng)的行動,將能進一步提高中小型企業(yè)在現(xiàn)代經(jīng)濟市場的競爭能力。</p><p> 網(wǎng)絡(luò)通信是網(wǎng)絡(luò)應(yīng)用的重要體現(xiàn)方面。網(wǎng)上即時通信則是網(wǎng)絡(luò)應(yīng)用的重要體現(xiàn)方面。本聊天系統(tǒng)主要應(yīng)用于小型企業(yè),學(xué)?;蛐⌒途钟蚓W(wǎng)內(nèi)部使用。本應(yīng)用程序使短距離交流更加快捷和便利,更能高效率的體現(xiàn)現(xiàn)
19、代即時通信的特點。</p><p> 本系統(tǒng)能夠滿足中小型企業(yè),學(xué)校的內(nèi)部網(wǎng)絡(luò)即時通信的需要,在內(nèi)部網(wǎng)絡(luò)正常環(huán)境的運營下,提供即時通信的能力,本系統(tǒng)使用Visual C#開發(fā),本系統(tǒng)能夠為中小型企業(yè)協(xié)同工作,相互間的交流提供了有力的工具,運用在局域網(wǎng)的本系統(tǒng),能夠為企業(yè)員工的交流提供幫助,有利于提高工作效率。</p><p><b> 課題研究現(xiàn)狀分析</b>&l
20、t;/p><p> 1996年11月ICQ在全球發(fā)布,拉開了互聯(lián)網(wǎng)IM(Instant Messenger,即時通訊)應(yīng)用的序幕。就是這樣一款小軟件在短短數(shù)年時間里發(fā)展出一個巨大的IM產(chǎn)業(yè)。</p><p> 時至今日,即時性通訊工具早已成為最熱門的網(wǎng)絡(luò)應(yīng)用之一。國內(nèi)外的聊天工具舉不勝數(shù)。ICQ作為全球第一款即時性通訊工具,在經(jīng)過短短數(shù)年的發(fā)展,其行業(yè)內(nèi)的地位如今已是無人能夠撼動。ICQ名
21、字取自英文“I seek you”的諧音,即是“我找你”的意思。最初的ICQ只有兩個特性,即用戶列表和即時聊天。但一經(jīng)推出就受到眾多網(wǎng)民的喜愛,6個月內(nèi)其注冊用戶迅速攀升至85萬,1998年它的用戶數(shù)量更是翻了10數(shù)倍,達到了1200萬人。ICQ的迅猛發(fā)展也讓當(dāng)時的互聯(lián)網(wǎng)領(lǐng)頭羊Yahoo和在桌面軟件領(lǐng)域獨步天下的微軟嗅到了商機,它們分別推出了Yahoo Messenger、MSN Messenger和曇花一現(xiàn)的MS Chat。即時通訊市
22、場雛形頓顯,有了國際互聯(lián)網(wǎng)巨頭和最大軟件公司的融入,即時通訊時代的大幕就此徐徐拉開。</p><p> 當(dāng)ICQ風(fēng)行全球的時候,在國內(nèi)各種仿ICQ的中文IM軟件也紛紛推出,時至今日,占據(jù)國內(nèi)的市場的主要是騰訊公司的QQ、微軟的MSN、雅虎的雅虎通等。其中騰訊公司的QQ以占據(jù)了國內(nèi)70%以上的市場。</p><p> 隨著IM應(yīng)用的深入,其功能早已超越了初期的即時文字聊天。表情圖標(biāo)早已成
23、為各個IM軟件的標(biāo)準(zhǔn)功能,文件傳輸、語音/視頻聊天、游戲、網(wǎng)上交友等高級功能也正越來越多地被集成進入IM應(yīng)用。事實表明,現(xiàn)在的IM已不再是一個簡單的溝通工具,而是一個信息資訊、交流互動、休閑娛樂中心,IM平臺上的語音、視頻、音樂點播、信息共享等新應(yīng)用層出不窮。發(fā)展到現(xiàn)在,IM軟件越來越成熟,IM產(chǎn)業(yè)鏈也已經(jīng)形成,已經(jīng)成為現(xiàn)代人和現(xiàn)代經(jīng)濟中不可或缺的一部份,相信未來IM軟件的道路會更加寬廣和精彩。</p><p>
24、 21世紀(jì)是信息的時代,隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,信息在傳遞方面也有了嶄新的一面?,F(xiàn)今聊天軟件成為信息傳遞最為廣泛的應(yīng)用工具,它發(fā)揮了即時性通信的特點,可以讓用戶在第一時間內(nèi)得到信息的交流,它不僅可以讓用戶進行文字聊天,而且還增添語音、視頻功能。這樣可以讓網(wǎng)上的好友身臨其境的面對面的聊天,讓彼此之間更為深入的了解。人性化的設(shè)計讓每個用戶都可以得心應(yīng)手的使用,從而獲得更多人的青睞。Internet的出現(xiàn)連通了整個世界,而聊天軟件的出現(xiàn)則連通
25、了每一位網(wǎng)上的用戶。隨著網(wǎng)絡(luò)應(yīng)用的發(fā)展,聊天軟件已經(jīng)成為最熱門的網(wǎng)絡(luò)應(yīng)用之一。經(jīng)歷了近幾年突飛猛進的發(fā)展之后,即時通訊工具早已不再是簡單的互聯(lián)網(wǎng)通訊工具,它已經(jīng)成為一個集互動交流、休閑娛樂、信息管理為一體的多元化互聯(lián)網(wǎng)應(yīng)用平臺??傊?,聊天軟件的出現(xiàn)給人們彼此之間的溝通帶來了無比的方便,人們可以通過聊天軟件建立深刻的友情,讓人們在互聯(lián)網(wǎng)上的交流更加充滿活力與生機。</p><p> 本領(lǐng)域內(nèi)已開展的研究工作<
26、;/p><p> 聊天軟件作為使用最為廣泛的即時性通訊工具,它在擁有文字聊天基礎(chǔ)功能的同時,為滿足用戶的需求,還增加了文件傳輸、語音、視頻聊天等主要的功能,成為現(xiàn)在最為主流的網(wǎng)上應(yīng)用軟件。本論文主要對聊天軟件的文字聊天、文件傳輸功能進行分析與研究,總結(jié)出實現(xiàn)的相關(guān)理論與知識。</p><p><b> 1. 理論研究基礎(chǔ)</b></p><p>
27、; ?。?)套接字(Sockets)</p><p> ?。?)C# Windows Socket類</p><p> 2. 技術(shù)層面的支持</p><p> Winsock是一套開放的,支持多種協(xié)議的Windows下網(wǎng)絡(luò)編程接口,是Windows網(wǎng)絡(luò)編程實是上的標(biāo)準(zhǔn).應(yīng)用程序通過調(diào)用Winsock的API實現(xiàn)相互間的通信,而Winsock利用下層的網(wǎng)絡(luò)通信協(xié)議
28、功能和操作系統(tǒng)調(diào)用實現(xiàn)實際的通信工作。</p><p> Microsoft Visual Studio.NET (VS.NET)是Microsoft公司為適應(yīng)Internet高速發(fā)展的需要,而推出的新的開發(fā)平臺(集成開發(fā)環(huán)境)。2003年,Microsoft 公司發(fā)布了VS.NET 2003,提供了在Windows操作系統(tǒng)下開發(fā)各類基于.NET Framework 1.1的全新的應(yīng)用程序開發(fā)平臺;2005年底
29、,Microsoft公司又發(fā)布了基于.NET Framework 2.0的VS.NET 2005開發(fā)平臺,植入了適用于大型團隊開發(fā)的各種優(yōu)秀的復(fù)雜功能,并于2006年1月發(fā)布了VS.NET 2005 Professional 簡體中文版。</p><p><b> 已經(jīng)取得的研究成果</b></p><p> QQ:國內(nèi)用戶量第一。在2004年就已經(jīng)擁有2.26億
30、注冊用戶、500多萬收費用戶,而且每天還在以幾十萬的數(shù)量遞增著。與其他中文通訊軟件相比,騰訊QQ以其漂亮的界面、合理的設(shè)計、良好的易用性、強大的功能(如:隱藏功能、分組功能等),穩(wěn)定高效的系統(tǒng)運行,贏得了用戶的青睞,如果你不嫌它廣告較多的話,的確是不錯的聊天軟件。提供了大量卡通圖案,而且引入了立體風(fēng)格,形象更趨于卡通化。新版QQ同時增加了自定義動態(tài)表情。支持網(wǎng)友自定義顯示系統(tǒng)表情的行數(shù),靈活方便的快捷鍵設(shè)置,把熱鍵設(shè)置為與表情相同的字或
31、字母,炫彩漢字和字母的搭配可與MSN媲美。所以,無論是從用戶數(shù)量還是公眾影響力來看,QQ都是國內(nèi)即時通訊軟件市場上無可爭議的“老大”。QQ最不討人喜歡的是廣告大量存在,而且似乎一直在變本加厲;安裝的可定制性差,最讓人無法忍受的莫過于騰訊瀏覽器,這個并不是所有人都中意的多窗口瀏覽器,一旦安裝QQ就會被安裝,而且會更改很多系統(tǒng)設(shè)置,使普通用戶被逼無奈只能使用該瀏覽器;隨著視頻聊天等功能的整合,QQ的資源消耗十分嚴(yán)重:安裝文件的大小大約是MS
32、N的4倍,安裝后的文件夾為80MB(MSN為5.5MB),內(nèi)存占用</p><p> MSN:全球用戶量居前,約有5000萬用戶,國內(nèi)用戶量應(yīng)該第二。在人們的印象中,MSN更多的偏重于辦公階層用戶,傻瓜式操控性讓我們能夠在最短的時間內(nèi)掌握它的使用要決。主界面相當(dāng)?shù)那逅?,卡通味不濃。但軟件主界面過于寬大,占用了相當(dāng)?shù)淖烂婵臻g,不像QQ一樣小巧玲瓏。現(xiàn)在的MSN 7.0版本,更給人們一種耳目一新的感覺,對于那些喜歡
33、時尚和追求多變的上班族而言是個不錯的選擇。MSN最讓人津津樂道的功能就是把漢字做成彩色的表情圖片,熱鍵設(shè)置為同樣的字,就可以在聊天時候打出五彩的漢字,效果炫麗。但不支持批量導(dǎo)入導(dǎo)出,可顯示出的自定義表情只有10個,用起來還是有諸多不便。支持手寫;在占用資源上比同類軟件優(yōu)勝;穩(wěn)定性超強;語音與視頻質(zhì)量上佳,開著語音打CS,一樣穩(wěn)定清晰(QQ則斷斷續(xù)續(xù),聽不清楚);最讓人興奮不已的是,從6.0版本開始,可以穿透防火墻進行文件共享。缺點:不能
34、向離線用戶發(fā)送消息,無法自定義離線狀態(tài),在新版本中依然未得到很好的解決;增加用戶時也不如QQ方便,須通過其“繁忙”的網(wǎng)頁來進行用戶的搜索和添加,而且搜索網(wǎng)站還是繁體的。</p><p> ICQ:作為同類軟件的始祖,目前注冊用戶超過1.5億,在全球擁有廣泛的用戶支持,但缺乏中國本土化支持仍是其最大缺點。</p><p> AIM:注冊用戶數(shù)量居全球(不含中國)第二,僅次于ICQ。<
35、;/p><p> UC:作為后起之秀的UC,具有一些QQ會員擁有的功能,其免費網(wǎng)絡(luò)硬盤服務(wù)提供了文件上傳、下載服務(wù),功能簡單實用。UC普通用戶的網(wǎng)民所享有的空間(32MB)是QQ普通用戶(16MB)的一倍。更棒的是,只要UC的在線時間累計達到了100小時/500小時,網(wǎng)絡(luò)硬盤的容量可以分別免費升級為64MB/128MB。UC的聊天功能支持動畫的顯示和發(fā)送。點擊UC聊天窗口的按鈕,選擇本地動畫發(fā)送,在本地硬盤選擇想要
36、發(fā)送的圖片,確認(rèn)后選擇發(fā)送,就可以給在線的好友發(fā)送動畫圖片了。有自動聊天功能,不管在什么時候,只要打開UC,都會有“人”在線親切地對你噓寒問暖。如今無論是注冊用戶還是更有價值的同時在線人數(shù),UC都搶掉QQ百分之五以上的市場份額(QQ依然是霸主,但現(xiàn)在已經(jīng)無法一手遮天了)。假以時日也許會占領(lǐng)我們后面的一代人。</p><p> 網(wǎng)易泡泡:在無廣告打擾、整合網(wǎng)易服務(wù)上做得比較出色。大部分聊天功與QQ是類似,但也有一
37、些特有的功能:支持用戶自選圖片作為頭像;有“常用短語”的服務(wù),提供了許多聊天妙語;可對每個聯(lián)系人設(shè)置選擇性隱身,右鍵單擊聯(lián)系人即可(這點QQ也有一個選項“如果該好友上線,則自動對其隱身”)。</p><p><b> 其他比較:</b></p><p> 軟件名稱 表情可愛度 使用便捷性 表情效果 創(chuàng)新性 </p>&
38、lt;p> MSN ★★★☆ ★★★★ ★★★★ ★★★★★</p><p> 朗瑪UC ★★★ ★ ★★★☆ ★★★ ★★★☆ </p><p> 騰訊Q Q ★★★★☆ ★★ ★★☆ ★★★★☆ ★★★★☆</p><p><b>
39、選題的目的及意義</b></p><p> ?。?)提供即時通信的能力。.</p><p> ?。?)提高中小型企業(yè)在現(xiàn)代經(jīng)濟市場的競爭能力。</p><p> ?。?)能夠為企業(yè)員工的交流提供幫助。</p><p><b> 課題研究的主要內(nèi)容</b></p><p> 根據(jù)網(wǎng)絡(luò)
40、應(yīng)用程序的特點,網(wǎng)絡(luò)在線聊天系統(tǒng)應(yīng)就有即時,快速的特點。服務(wù)器端和客戶端應(yīng)就有不同的功能特性。對于服務(wù)器端應(yīng)能夠正確地建立與客戶端的連接并能正確地斷開,能即時地接收、處理和發(fā)送接收到的數(shù)據(jù)。能及時地通知在線用戶當(dāng)前好友在線狀況,能夠處理非正常數(shù)據(jù)的能力。對于客戶端應(yīng)能夠快速地檢查是否能夠連接到服務(wù)器端。能正確的獲得和反映當(dāng)前好友在線情況。能夠正確的與特定好友交流。能及時地接收到服務(wù)器端地數(shù)據(jù),并能即時處理數(shù)據(jù),并能將處理結(jié)果反映給用戶。
41、</p><p><b> 1. 實時好友登陸</b></p><p> 當(dāng)好友登陸或離開聊天室,服務(wù)器端有能力通知所有其他在線用戶。</p><p> 2. 收發(fā)消息同步 </p><p> 當(dāng)一用戶向其他的好友發(fā)出消息,發(fā)送接收端的用戶應(yīng)能及時接收到消息。</p><p> 3. 服
42、務(wù)器關(guān)閉通知 </p><p> 當(dāng)服務(wù)器因故障或維護需要暫時關(guān)閉,應(yīng)有通知在線用戶的能力。</p><p> 4. 隱私消息模式 </p><p> 當(dāng)用戶選擇發(fā)送消息為私聊的模式。其他在線用戶不能看到此條消息。</p><p> 第2章 系統(tǒng)需求分析</p><p> 隨著經(jīng)濟全球化的推進以及企業(yè)激烈的
43、競爭,改善企業(yè)內(nèi)部及整個供應(yīng)鏈各環(huán)節(jié)的管理、調(diào)度及資源配置,迅速適應(yīng)客戶的新需求和市場新機遇,是企業(yè)贏得競爭勝利的決定性因素。</p><p> 需求分析是軟件分析中的一個重要步驟。它的基本任務(wù)是要準(zhǔn)確地分析出系統(tǒng)應(yīng)用者的需要,以及系統(tǒng)目標(biāo)必須具備哪些功能。這些功能必須準(zhǔn)確地,完整地體現(xiàn)出用戶的要求。</p><p><b> 2.1 問題的提出</b></
44、p><p> 需求分析是軟件分析中的一個重要步驟。它的基本任務(wù)是要準(zhǔn)確地分析出系統(tǒng)應(yīng)用者的需要,以及系統(tǒng)目標(biāo)必須具備哪些功能。這些功能必須準(zhǔn)確地,完整地體現(xiàn)出用戶的要求。</p><p> 2.2 系統(tǒng)的設(shè)計目標(biāo)</p><p> 根據(jù)網(wǎng)絡(luò)應(yīng)用程序的特點,網(wǎng)絡(luò)在線聊天系統(tǒng)應(yīng)就有即時,快速的特點。服務(wù)器端和客戶端應(yīng)就有不同的功能特性。對于服務(wù)器端應(yīng)能夠正確地建立與客
45、戶端的連接并能正確地斷開,能即時地接收、處理和發(fā)送接收到的數(shù)據(jù)。能及時地通知在線用戶當(dāng)前好友在線狀況,能夠處理非正常數(shù)據(jù)的能力。對于客戶端應(yīng)能夠快速地檢查是否能夠連接到服務(wù)器端。能正確的獲得和反映當(dāng)前好友在線情況。能夠正確的與特定好友交流。能及時地接收到服務(wù)器端地數(shù)據(jù),并能即時處理數(shù)據(jù),并能將處理結(jié)果反映給用戶。</p><p><b> 服務(wù)器端:</b></p><
46、p> ?。?)能夠正確地、無沖突地啟動服務(wù)器。</p><p> ?。?)監(jiān)聽指定的端口,等待用戶的連接。</p><p> ?。?)建立與客戶端的邏輯連接,并能通知其他好友。</p><p> (4)向新進入的好友發(fā)出已上線的好友名單。</p><p> ?。?)接收客戶端的消息請求,并能正確無誤地處理消息,并能發(fā)出消息到客戶端。&
47、lt;/p><p> ?。?)反映當(dāng)前在線人數(shù)和在線好友狀況。</p><p> ?。?)及時地反映發(fā)出地消息和聊天消息。</p><p> ?。?)當(dāng)好友斷開與服務(wù)器端地連接時,服務(wù)器能夠正確地斷開連接,并通知其他用戶。</p><p> ?。?)當(dāng)用戶違反聊天系統(tǒng)規(guī)定時,服務(wù)器系統(tǒng)管理員能夠斷開與此用戶的連接。</p><
48、p> 當(dāng)服務(wù)器關(guān)閉時,應(yīng)通知所有用戶。</p><p><b> 客戶端:</b></p><p> ?。?)能夠正確啟動應(yīng)用程序,并能向服務(wù)器發(fā)出連接請求。</p><p> ?。?)反映當(dāng)前好友在線情況。</p><p> (3)能夠向群體或指定好友發(fā)出消息</p><p> ?。?/p>
49、4)能夠及時接收好友發(fā)出消息,并通知用戶。</p><p> ?。?)能夠正確地斷開與服務(wù)器端地的連接。</p><p> 第3章 系統(tǒng)開發(fā)的技術(shù)背景</p><p> 3.1 Socket套接字介紹</p><p> Winsock是一套開放的,支持多種協(xié)議的Windows下網(wǎng)絡(luò)編程接口,是Windows網(wǎng)絡(luò)編程實是上的標(biāo)準(zhǔn).應(yīng)用程
50、序通過調(diào)用Winsock的API實現(xiàn)相互間的通信,而Winsock利用下層的網(wǎng)絡(luò)通信協(xié)議功能和操作系統(tǒng)調(diào)用實現(xiàn)實際的通信工作.</p><p> 1. 套接字(Sockets)</p><p> 套接字是通信的基石,是支持TCP/IP協(xié)議的網(wǎng)絡(luò)通信的操作單元.可以將套接字看作不同主機間的進程進行雙向通信的端點,它構(gòu)成了單個主機內(nèi)及整個網(wǎng)絡(luò)間的編程界面.套接字存在于通信域中.通信域是為了
51、處理一般的線程通過套接字通信而引進的一種抽象概念.套接字通過通常和同一個域中的套接字交換數(shù)據(jù)(數(shù)據(jù)交換也可能穿越域的界限,但這時一定要執(zhí)行某種解釋程序).Winsock規(guī)范支持單一的通信域,即Internet域.各種進程使用這個域互相之間用Internet協(xié)議簇來進行通信(Winsock 1.1以上的版本支持其他的域)。</p><p> 套接字可以根據(jù)通信性質(zhì)分類,這種性質(zhì)對于用戶時可見的.應(yīng)用程序一般僅在同
52、一類的套接字間通信.不過只要底層的通信協(xié)議允許,不同類型的套接字間也照樣可以通信</p><p> 進入九十年代后,隨著計算機和網(wǎng)絡(luò)技術(shù)的發(fā)展,很多數(shù)據(jù)處理系統(tǒng)都采用開放系統(tǒng)結(jié)構(gòu)的客戶機/服務(wù)器網(wǎng)絡(luò)模式,即客戶機提出任務(wù)請求,通過網(wǎng)絡(luò)發(fā)送給服務(wù)器,由服務(wù)器做相應(yīng)處理,執(zhí)行被請求的任務(wù),然后將結(jié)果返回給客戶機。例如:銀行ATM的前置機和數(shù)據(jù)處理的主機之間即構(gòu)成客戶機/服務(wù)器網(wǎng)絡(luò)模式;電話銀行的前置機和銀行數(shù)據(jù)處理
53、機之間也構(gòu)成這種網(wǎng)絡(luò)模式結(jié)構(gòu)等。這樣,如何在前置機和數(shù)據(jù)主機之間進行信息交換,即進程網(wǎng)絡(luò)通信,就成為實現(xiàn)這種網(wǎng)絡(luò)模式的基礎(chǔ)。而TCP/IP的套接字技術(shù)是解這一問題的有力工具。它從提出時就一直發(fā)揮著愈來愈重要的作用,并已成為UNIX操作系統(tǒng)下TCP/IP網(wǎng)絡(luò)編程標(biāo)準(zhǔn);甚至WINDOW、JAVA都配有它的通用接口。有了這個強有力的工具,我們可以實現(xiàn)異種機、異種操作系統(tǒng)應(yīng)用程序間的相互連接和通信。套接字(sockets)是支持TCP/IP協(xié)議
54、的網(wǎng)絡(luò)通信的基本操作單元??梢詫⑻捉幼挚醋鞑煌鳈C間的進程進行雙向通信的端點。它構(gòu)成了在單個主機內(nèi)及整個網(wǎng)際間的編程界面。一般來說,跨機應(yīng)用進程之間要在網(wǎng)絡(luò)環(huán)境下進行通信,必須要在網(wǎng)絡(luò)的每一端都要建立一個套接字,兩個套接字之間是可以建立連接的,也</p><p> (1) 字節(jié)流套接字</p><p> 字節(jié)流不按記錄定界,在TCP/IP協(xié)議簇中對應(yīng)TCP協(xié)議,即傳輸控制協(xié)議(Tran
55、smitionControlProtocol)。它是一個提供給用戶進程可靠的全雙工的面向連接的協(xié)議,大多數(shù)INTERNET應(yīng)用程序如ftp、telnet使用TCP協(xié)議。通信端點使用TCP對應(yīng)的INTERNET地址互相連接,可保證按正確的順序以及單一和可靠的地址傳輸數(shù)據(jù)。由于它是字節(jié)流,所以包長包沒有限制,信包傳輸也不重復(fù),因而是一種常用的套接字類型。</p><p> 流套接字提供雙向的,有序的,無重復(fù)并且無記
56、錄邊界的數(shù)據(jù)流服務(wù),它適應(yīng)于處理大量數(shù)據(jù).網(wǎng)絡(luò)傳輸層可以將數(shù)據(jù)分散或集中到合適尺寸的數(shù)據(jù)包中。</p><p> 流套接字是面向連接的,通信雙方進行數(shù)據(jù)交換之前,必須建立一條路徑,這樣即確定了它們之間存在的路徑,又保證了雙方都是活動的,可彼此相應(yīng)的,但在通信雙方之間建立一個通信信道需要很多開支.除此以外,大部分面向連接的協(xié)議為保證發(fā)送無誤,可能會需要執(zhí)行額外的計算機來驗證正確性,為此會進一步增加開支。</
57、p><p> (2) 數(shù)據(jù)報套接字</p><p> 數(shù)據(jù)報對應(yīng)記錄型數(shù)據(jù)流,在TCP/IP協(xié)議簇中對應(yīng)UDP協(xié)議,即用戶數(shù)據(jù)報協(xié)議(UserDatagramProtocol)。利用數(shù)據(jù)報服務(wù)可實現(xiàn)一些簡單的網(wǎng)絡(luò)服務(wù),如網(wǎng)點檢測程序PING。由于不建立連接,數(shù)據(jù)報協(xié)議比連接協(xié)議快。但不能保證所有數(shù)據(jù)都準(zhǔn)確有序地到達目的地。不保證順序性、可靠性和無重復(fù)性。它是無連接的服務(wù),以獨立的信包進行傳
58、輸,通信端點使用UDP對應(yīng)的INTERNET地址。雙方不需互連,按固定的最大長度進行傳輸,因而適用于單個報文傳輸,或較小文件的傳輸。</p><p> 數(shù)據(jù)報套接字支持雙向的數(shù)據(jù)流,但不保證數(shù)據(jù)傳輸?shù)目煽啃?有序性,和無重復(fù)性.也就是說,一個從數(shù)據(jù)報套接字接受信息的進程有可能發(fā)現(xiàn)信息重復(fù),或者和發(fā)出時間順序不同的情況.此外,數(shù)據(jù)報套接字的一個重要特點是它保留了記錄邊界。</p><p>
59、 數(shù)據(jù)報套接字是無連接的,它不保證接受端是否在監(jiān)聽,類似郵政服務(wù):發(fā)信人把信裝入郵箱即可,至于收信人是否收到這封信或郵局是否會因為暴風(fēng)雨未能按時將信件投入收信人處等等,發(fā)信人都不得而知.因此,數(shù)據(jù)報并不十分可靠,需有程序員負責(zé)管理數(shù)據(jù)的排序和可靠性)。</p><p> 2. 套接字的編程要點及過程</p><p> 不論何種套接字編程,均采用客戶機/服務(wù)器方式,其運作過程基本類似,
60、限于篇幅,這里僅介紹字節(jié)流套接字。字節(jié)流套按字的服務(wù)進程和客戶進程,在通信前必須創(chuàng)建各自的套接字以建立連接,然后對相應(yīng)的套接字進行“讀”、“寫”操作,實現(xiàn)信息的交換。服務(wù)器進程創(chuàng)建套接字。服務(wù)進程總是先于客戶進程啟動,服務(wù)進程首先調(diào)用socket()函數(shù)創(chuàng)建自已端的一個字節(jié)流套接字,并提供三個參數(shù):網(wǎng)絡(luò)地址類型,一般取AF_INEF(AdressfamilyInterNET);套接字類型,這里取SOCK_STREAM;網(wǎng)絡(luò)協(xié)議,缺省為T
61、CP/IP協(xié)議,對應(yīng)參數(shù)為0。給套接字地址變量賦初值。在生成套接字后,要用服務(wù)器的地址先對sockaddr_in結(jié)構(gòu)變量賦初值。sockaddr_in它只適用INTERNET地址類型,含有INTERNET套接字地址類型、IP端口號、IP地址等信息。地址類型可取定為AF_INET,IP地址對服務(wù)器可取任意合法地址INADDR_ANY。IP端口號可由用戶設(shè)定,但要注意主機字節(jié)順序向網(wǎng)絡(luò)字節(jié)順序的轉(zhuǎn)換。給套接字命名。由socket()函數(shù)創(chuàng)建
62、的套接字是沒有名字的。所謂命名,就是用bind()函數(shù)</p><p><b> 3. 基本概念</b></p><p><b> (1) 帶外數(shù)據(jù)</b></p><p> 帶外數(shù)據(jù),也稱為TCP緊急數(shù)據(jù),它是相連的每一對流套接字間的一個邏輯上獨立的傳輸通道,帶外數(shù)據(jù)是獨立于普通數(shù)據(jù)傳輸給用戶的,這一抽象要求帶外數(shù)
63、據(jù)設(shè)備必須支持每一時刻僅有一個帶外數(shù)據(jù)信息等候發(fā)送。對于僅支持帶外數(shù)據(jù)的通信協(xié)議來說(例如緊急數(shù)據(jù)是與普通數(shù)據(jù)在同一序列發(fā)送),系統(tǒng)通常把緊急數(shù)據(jù)從普通數(shù)據(jù)中分離出來單獨存放。這就允許用戶可以在順序接受緊急數(shù)據(jù)和非順序接收緊急數(shù)據(jù)之間作出選擇。</p><p><b> (2) 廣播</b></p><p> 數(shù)據(jù)報套接字可以用來向許多系統(tǒng)支持的網(wǎng)絡(luò)發(fā)送廣播數(shù)據(jù)包
64、。要實現(xiàn)這種功能,網(wǎng)絡(luò)必須支持廣播功能。為此系統(tǒng)軟件并不提供對廣播功能的任何模擬。廣播信息將會給網(wǎng)絡(luò)造成極重的負擔(dān),為此它們要求網(wǎng)絡(luò)上的每臺主機都為他們服務(wù),所以發(fā)送廣播數(shù)據(jù)包的能力被限制于那些用顯式標(biāo)記了允許廣播的套接字中。廣播通常應(yīng)用于以下兩種情況:</p><p> 一個應(yīng)用程序希望在本地網(wǎng)絡(luò)中找到一個資源。而應(yīng)用程序?qū)υ撡Y源的地址又沒有任何先驗的知識。</p><p> 一些重
65、要功能,例如路由要求把它們的信息發(fā)送給所有可以找到的鄰機。</p><p> 被廣播信息的目的地址取決于這一信息將在何種網(wǎng)絡(luò)上廣播。Internet域中支持一個速記地址-INADDR_BROADCAST用于廣播。由于使用廣播以前必須綁定一個數(shù)據(jù)包套接字,所以所有收到的廣播消息都帶有發(fā)送者的地址和端口。</p><p><b> (3) 字節(jié)順序</b></p
66、><p> 不同的計算機有時使用不同的字節(jié)順序存儲數(shù)據(jù)。例如,基于Intel處理器的計算機和Macintosh計算機使用了相反的字節(jié)排序順序。Intel的字節(jié)順序被成為“Little-Endian”,它與網(wǎng)絡(luò)的字節(jié)排序順序“Big-Endian”排序順序相反。</p><p> 任何從Winsock函數(shù)對IP地址和端口號的引用和傳送給Winsock函數(shù)的IP地址和端口號均是按照網(wǎng)絡(luò)順序組織
67、的,這也包括了sockaddr_in這一數(shù)據(jù)結(jié)構(gòu)中的IP地址域和端口域</p><p> 考慮到一個應(yīng)用程序通常用與“時間”服務(wù)對應(yīng)的端口來和服務(wù)器連接,而服務(wù)器提供某些機制來通知用戶使用另一端口。為此getservbyname函數(shù)返回的端口已經(jīng)是網(wǎng)絡(luò)順序了,可以直接使用來組織成一個地址,而不需要進行轉(zhuǎn)換。然而如果從主機順序轉(zhuǎn)換成網(wǎng)絡(luò)順序。相應(yīng)地,如果應(yīng)用程序希望顯示包含于某一地址中地端口號,則這一端口號就必須
68、在被顯示前從網(wǎng)絡(luò)順序轉(zhuǎn)換到主機順序。</p><p> (4) 阻塞和非阻塞</p><p> 套接字可以處于阻塞模式或非阻塞模式。調(diào)用任何一個阻塞模式地函數(shù),都回產(chǎn)生相同地后果-耗費或長或短地時間等待操作地完成。而當(dāng)套接字處于非阻塞模式時,API函數(shù)的調(diào)用會立即返回,大多數(shù)情況這些調(diào)用都回“失敗”,并返回一個WASEWOULDBLOCK的錯誤,它意味著請求的操作在調(diào)用期間沒有時間完成
69、。Winsock的套接字I/O模型可以幫助應(yīng)用程序判斷一個套接字何時可供讀寫.</p><p> 套接字的行為在Windows 9X 和Windows NT中與在 Windows 3.1中不同.在32位操作系統(tǒng)中,可以采用多線程編程,在不同的線程中使用套接字,這樣即使某個線程中的套接字被阻塞,也不會影響應(yīng)用程序的其他操作,同時也不會在阻塞線程上耗費CPU時間。</p><p> (5)
70、 Winsock編程原理</p><p> 進入20世紀(jì)90年代后,隨著計算機和網(wǎng)絡(luò)技術(shù)的發(fā)展,很多數(shù)據(jù)處理系統(tǒng)都采用開放系統(tǒng)結(jié)構(gòu)的客戶機/服務(wù)器(Client/Server)網(wǎng)絡(luò)模型,即客戶機向服務(wù)器提交請求,服務(wù)器對請求做相應(yīng)的處理兵執(zhí)行被請求的任務(wù),然后將結(jié)構(gòu)返回給客戶機。這種方式隱含了在建立客戶機/服務(wù)器間通信是的非對稱性。</p><p> 客戶機/服務(wù)器模型工作時要求有一套
71、為客戶機和服務(wù)器所共識的慣例來保證服務(wù)能夠被提供(或被接受),這一套慣例包含了一套協(xié)議,它必須在通信的兩頭都被實現(xiàn)。根據(jù)不同的實際情況,協(xié)議可能是對稱的或非對稱的。在對稱的協(xié)議中每一方都有可能扮演主從角色;在非對稱協(xié)議中一方被不可改變地認(rèn)為是主機,而另一方則是從機。一個對稱協(xié)議地例子是Internet中用于終端仿真地Telnet,而非對稱協(xié)議地例子是Internet中的http。無論具體的協(xié)議是對稱的或是非對稱的,當(dāng)服務(wù)被提供時必然存在
72、客戶進程和服務(wù)進程。</p><p> 一個服務(wù)程序通常在一個眾所周知地地址監(jiān)聽客戶對服務(wù)地請求,也就是說,服務(wù)進程一直處于休眠狀態(tài),直到一個客戶對這個服務(wù)地址提出連接請求。在這個時刻,服務(wù)程序被“驚醒”并且為客戶提供服務(wù)-對客戶地請求作出適當(dāng)?shù)姆磻?yīng)。這一請求/響應(yīng)的過程可以簡單地用以下圖表表示,雖然基于連接地服務(wù)器應(yīng)用程序時的標(biāo)準(zhǔn),但有時服務(wù)也可以通過數(shù)據(jù)報套接字提供。</p><p>
73、; (6) C# Windows Socket類</p><p> 在.Net中,System.Net.Sockets 命名空間為需要嚴(yán)密控制網(wǎng)絡(luò)訪問的開發(fā)人員提供了 Windows Sockets (Winsock) 接口的托管實現(xiàn)。System.Net 命名空間中的所有其他網(wǎng)絡(luò)訪問類都建立在該套接字Socket實現(xiàn)之上,如TCPClient、TCPListener 和 UDPClient 類封裝有關(guān)創(chuàng)建到
74、 Internet 的 TCP 和 UDP 連接的詳細信息;NetworkStream類則提供用于網(wǎng)絡(luò)訪問的基礎(chǔ)數(shù)據(jù)流等,常見的許多Internet服務(wù)都可以見到Socket的蹤影,如Telnet、Http、Email、Echo等,這些服務(wù)盡管通訊協(xié)議Protocol的定義不同,但是其基礎(chǔ)的傳輸都是采用的Socket。 其實,Socket可以象流Stream一樣被視為一個數(shù)據(jù)通道,這個通道架設(shè)在應(yīng)用程序端(客戶端)和遠程服務(wù)器端
75、之間,而后,數(shù)據(jù)的讀?。ń邮眨┖蛯懭耄òl(fā)送)均針對這個通道來進行。 可見,在應(yīng)用程序端或者服務(wù)器端創(chuàng)建了Socket對象之后,就可以使用Send/SentTo方法將數(shù)據(jù)發(fā)送到連接的Socket,或者使用Rec</p><p> 其中,addressFamily 參數(shù)指定 Socket 使用的尋址方案,socketType 參數(shù)指定 Socket 的類型,protocolType 參數(shù)指定 Socket
76、使用的協(xié)議。 下面的示例語句創(chuàng)建一個 Socket,它可用于在基于 TCP/IP 的網(wǎng)絡(luò)(如 Internet)上通訊。 Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 若要使用 UDP 而不是 TCP,需要更改協(xié)議類型,如下面的示例所示: Socket s = n
77、ew Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); 一旦創(chuàng)建 Socket,在客戶端,你將可以通過Connect方法連接到指定的服務(wù)器,并通過Send/SendTo方法向遠程服務(wù)器發(fā)送數(shù)據(jù),而后可以通過Receive/ReceiveFrom從服務(wù)端接收數(shù)據(jù);而在服務(wù)器端,你需要</p><p> 3.2 .N
78、ET Framework 2.0介紹</p><p> 目前,.NET Framework的主流版本是2.0,3.0版本已經(jīng)推出,但還未被廣泛使用,當(dāng)前基于.NET平臺的軟件開發(fā)還是主要集中在2.0版本上的。</p><p> .NET Framework是微軟為開發(fā)應(yīng)用程序創(chuàng)建的一個富有革命性的新平臺。.NET Framework發(fā)布的第一個版本是運行在Windows操作系統(tǒng)上的,以
79、后隨著技術(shù)的成熟與更新,其余的操作系統(tǒng)像Linux、FreeBSD,甚至個人數(shù)字助手(PDA)類設(shè)備,都有運行在其上的.NET Framework版本。</p><p> .NET Framework主要由以下3部分組成,如圖 3-1:</p><p> 1. 公共語言運行庫(CLR: Common Language Runtime)</p><p> 2.
80、基礎(chǔ)類庫(Base Class Library) </p><p> 3. VC++.Net 、VB.NET、C#等語言運行庫</p><p> 圖3-1 .NET Framework組成</p><p> .NET Framework是框架,所有的運行都是建立在這個框架基礎(chǔ)之上的(必須安裝)。 </p><p> VS.NET是開發(fā)
81、工具(開發(fā)平臺),也就是集成開發(fā)環(huán)境,包括編輯器,編譯器等等,最重要的就是VS.NET包括.net framework(不需要單獨安裝)。 </p><p> 由于.net framework沒有編譯器,那么僅用它就無法把代碼編程程序,必須再一定的開發(fā)平臺上才能使用(所以使用VS.NET)。</p><p> 第4章 系統(tǒng)具體實現(xiàn)</p><p><b&
82、gt; 4.1概要設(shè)計</b></p><p> 根據(jù)調(diào)查和研究,得到系統(tǒng)所要處理的數(shù)據(jù)流程,如圖4-1,4-2所示:</p><p> 圖4-1 客戶端數(shù)據(jù)流圖</p><p> 圖4-2 服務(wù)器數(shù)據(jù)流圖</p><p> 4.2定義服務(wù)器端和客戶端的通信結(jié)構(gòu)及含義</p><p><b&
83、gt; 4.2.1客戶端</b></p><p> private void login_btn_Click(object sender, EventArgs e) --- 登陸到服務(wù)器</p><p> private void svrip_tb_TextChanged(object sender,EventArgs e)設(shè)置要連接的服務(wù)器的地址端口</p>
84、<p> private void chatrcd_rtb_TextChanged(object sender, EventArgs e)-- 顯示好友發(fā)送的信息</p><p> private void send_btn_Click(object sender, EventArgs e) ---- 給好友發(fā)送信息</p><p> private void user
85、_tb_TextChanged(object sender, EventArgs e) ----- 申請新的用戶</p><p> private void chatrcd_rtb_TextChanged(object sender, EventArgs e) ---- 顯示服務(wù)器消息</p><p> private void msg_tb_TextChanged(object se
86、nder, EventArgs e) ----- 顯示消息輸入文本</p><p> private void nudge_pb_Click(object sender, EventArgs e)------發(fā)送窗口抖動</p><p> private void broadcast_rb_CheckedChanged(object sender, EventArgs e)------
87、聊天模式的變更</p><p> private void hide_cb_CheckedChanged(object sender, EventArgs e)-------最小化到托盤</p><p><b> 4.2.2服務(wù)器端</b></p><p> 用戶及發(fā)送信息結(jié)構(gòu)體類型:</p><p> publ
88、ic void StartUp()-------服務(wù)器啟動,并且實時更新用戶在線信息</p><p> public void GetConfig()------配置服務(wù)器端口號等信息</p><p> private void ThreadFunc(object obj)-----系統(tǒng)對于發(fā)送消息、發(fā)送抖動等的異常的處理</p><p> public vo
89、id Close()--------關(guān)閉服務(wù)器</p><p> 4.3客戶端具體實現(xiàn)</p><p> 1. 登陸功能:建立與服務(wù)器的連接并登陸,能顯示登陸錯誤信息。</p><p> 2. 界面顯示:將在線好友顯示在好友列表中,并實現(xiàn)系統(tǒng)托盤,加入工具欄便于操作。</p><p> 3. 聊天功能:與好友聊天。</p>
90、<p> 4. 聊天紀(jì)錄:能保存聊天紀(jì)錄,并能察看聊天紀(jì)錄。</p><p> 5. 信息提示:閃動托盤圖標(biāo)提示到來信息,并播放不同音樂來提示。</p><p> 6. 發(fā)送窗口抖動:發(fā)送端提示聊天的對方。</p><p> 客戶端的具體實現(xiàn),如圖4-3所示:</p><p> 圖4-3 客戶端業(yè)務(wù)邏輯</p&g
91、t;<p> 4.4服務(wù)器端具體實現(xiàn)</p><p> 1. 登陸信息:檢查登陸信息是否正確,并向客戶端返回登陸信息,如信息正確。就將在線用戶發(fā)給該用戶,并將該用戶的狀態(tài)發(fā)給各在線用戶。同時在服務(wù)器端顯示出來。</p><p> 2. 聊天信息:轉(zhuǎn)發(fā)給消息指定的用戶。</p><p> 3. 申請信息:自動分配8位用戶號碼,并保存該用戶,同時將
92、信息返回給客戶端。</p><p> 4. 用戶下線:將此用戶下線消息發(fā)給各客戶端,并改寫用戶在服務(wù)器端的狀態(tài)。</p><p> 服務(wù)器端的具體實現(xiàn),如圖4-4所示:</p><p> 圖4-4 服務(wù)器業(yè)務(wù)邏輯</p><p><b> 第5章 系統(tǒng)測試</b></p><p> 經(jīng)
93、過對系統(tǒng)的軟、硬件的驗收測試系統(tǒng)滿足用戶的要求。其中硬件測試主要包括硬件設(shè)備的清單、啟動運行正常與否等。重點是軟件部分的測試,首先對軟件的功能進行測試,然后進行了全系統(tǒng)的72小時連續(xù)運行測試,系統(tǒng)穩(wěn)定性強。 </p><p> 表6-1系統(tǒng)功能測試細則表</p><p> 第6章 系統(tǒng)模塊設(shè)計及調(diào)試</p><p> 6.1 系統(tǒng)登錄界面</p>
94、;<p> 本系統(tǒng)的登陸界面,如圖6-1所示:</p><p><b> 圖6-1 登錄窗口</b></p><p><b> 部分代碼設(shè)計如下:</b></p><p> private void InitializeComponent()</p><p><b>
95、 {</b></p><p> this.groupBox1 = new System.Windows.Forms.GroupBox();</p><p> this.svrport_tb = new System.Windows.Forms.TextBox();</p><p> this.svrip_tb = new System.Windo
96、ws.Forms.TextBox();</p><p> ...............</p><p> this.groupBox1.SuspendLayout();</p><p> this.SuspendLayout();</p><p> ............</p><p><b>
97、 }</b></p><p> 6.2 系統(tǒng)維護界面</p><p> 本系統(tǒng)的維護界面,如圖6-2所示:</p><p> 圖6-2 服務(wù)器維護界面</p><p> 6.3 用戶聊天界面</p><p><b> 如圖 6-3所示:</b></p><
98、;p> 圖 6-3 用戶聊天主界面</p><p> 6.3.1聊天室模式</p><p> 公共聊天模式如圖 6-4所示:</p><p> 圖 6-4 公共聊天主界面</p><p> 6.3.2私人聊天模式</p><p> 私人聊天模式如圖 6-5所示:</p><p>
99、; 圖 6-5 私人聊天界面</p><p><b> 6.4系統(tǒng)開發(fā)思路</b></p><p> 盡量采用公司現(xiàn)有的硬件環(huán)境,及先進的管理系統(tǒng)開發(fā)方案,從而達到充分利用公司現(xiàn)有資源,提高系統(tǒng)開發(fā)水平和應(yīng)用效果的目的。</p><p> 系統(tǒng)應(yīng)符合員工日常的規(guī)定,滿足公司日常工作需要,并達到操作過程中的直觀、方便、實用、安全等要求。&
100、lt;/p><p> 系統(tǒng)采用C/S模型。服務(wù)器端和客戶端均使用Visual C#并使用Sockets模型開發(fā)實現(xiàn)。</p><p> 系統(tǒng)采用模塊化程序設(shè)計方法,既便于系統(tǒng)功能的各種組合和修改,又便于未參與開發(fā)的技術(shù)維護人員補充和維護。</p><p><b> 6.5需求的總結(jié)</b></p><p> 首先,經(jīng)
101、過和用戶的討論將系統(tǒng)要實現(xiàn)的功能列出來。主要模塊有登陸模塊、連接模塊 、發(fā)送消息模塊和接收和處理模塊。</p><p> 其次,對軟件的性能指標(biāo)的需求。主要有人機界面交互反應(yīng)時和運行時間限制在2秒之內(nèi),系統(tǒng)啟動運行不超過5秒,占用內(nèi)存不超過20M,外存不超過200M(不包括數(shù)據(jù)庫部分)。</p><p> 然后,提出軟件運行的環(huán)境需求。該公司的運行環(huán)境設(shè)置為:具有1GB以上cpu, 1
102、28MB的內(nèi)存,20GB硬盤規(guī)模的服務(wù)器和數(shù)臺普通可連網(wǎng)微機;軟件采用windows 2000(服務(wù)器)和windows 98以上作為系統(tǒng)和網(wǎng)絡(luò)軟件。該軟件的使用對象是公司的管理人員,只要會用一般的微機操作即可。</p><p> 從數(shù)據(jù)流和數(shù)據(jù)結(jié)構(gòu)出發(fā),逐步細化所有的軟件功能,找出系統(tǒng)各元素之間的聯(lián)系,接口特性和設(shè)計上的限制,分析它們是否滿足功能要求,是否合理。</p><p> 在
103、該系統(tǒng)的分析和綜合中,經(jīng)過多次與用戶的交流形成了各功能模塊,如圖6-3、6-4所示:</p><p> 圖6-3 服務(wù)器功能模塊圖</p><p> 圖6-4 客戶端功能模塊圖</p><p><b> 結(jié) 論</b></p><p> 在指導(dǎo)教師的幫助下,及時完成了畢業(yè)論文和畢業(yè)設(shè)計。本次設(shè)計鍛煉了實踐能力,
104、增長了我發(fā)現(xiàn)問題、解決問題的能力,大大豐富了自己的專業(yè)知識和技能。</p><p> 由于各種原因,系統(tǒng)的功能還沒有得到進一步的完善,系統(tǒng)存在一定的缺陷,如服務(wù)器端負擔(dān)過重、沒有實現(xiàn)可以插入圖形功能。以后會繼續(xù)努力,在今后的學(xué)習(xí)過程中,不斷地提高自己。</p><p><b> 致 謝</b></p><p> 畢業(yè)設(shè)計完成之際,我由衷
105、地感謝指導(dǎo)老師的大力幫助和支持,感謝我的同學(xué)與朋友,在我遇到各種各樣復(fù)雜問題的時候,給與我鼓勵和幫助,使我的分析問題和解決問題能力有了很大的提高。</p><p> 設(shè)計期間,指導(dǎo)老師嚴(yán)肅的科學(xué)態(tài)度、嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神、精益求精的工作作風(fēng)深深地感染和激勵著我。從課題的選擇到項目的最終完成,都始終給予我細心的指導(dǎo)和不懈的支持。</p><p><b> 參考文獻</b>
106、</p><p> [1] 孟凡榮.?dāng)?shù)據(jù)庫原理與應(yīng)用.中國礦業(yè)大學(xué),2009,8:28-30</p><p> [2] 張虹.軟件工程與軟件開發(fā)工具.北京:清華大學(xué)出版社,2009:55-75</p><p> [3] Bruce Eckel.Thinking in Java.北京:機械工業(yè)出版社,2009:42-64</p><p>
107、 [4] 羅軍舟等. TCP/IP協(xié)議及網(wǎng)絡(luò)編程技術(shù).北京:清華大學(xué)出版社,2008:132-210</p><p> [5] 孫一林,彭波.Java網(wǎng)絡(luò)編程實例.北京:清華大學(xué)出版社.2003:38-65</p><p> [6] 李樹青.Java通用范例開發(fā)金典.北京:電子工業(yè)出版社.2009:64-78</p><p> [7] 王鵬.Java Swi
108、ng 圖形界面開發(fā)與案例詳解.北京:清華大學(xué)出版社.2008:128-134</p><p> [8] 龐永慶,翟鵬.Java完全自學(xué)寶典.北京:清華大學(xué)出版社.2008:45-89</p><p> [9] 劉永華,于春花.Java網(wǎng)絡(luò)編程.北京:清華大學(xué)出版社.2008:18-29</p><p> [10]Boost Documentation. Edu
109、cating Your Organization .http://www.boost.org ,2011</p><p> [11] Boost.Asio Documentation.http://asio.sourceforge.net,2011 </p><p> [12] 孫桂蘭.電子商務(wù)網(wǎng)上書店系統(tǒng).北京:人民郵電出版社,2004,88-96</p><p&
110、gt; [14] 薩師煊,王珊.數(shù)據(jù)庫系統(tǒng)概述.北京:高等教育出版社,2004,45-67 </p><p> [15] B. Ford, M.I.T., P. Srisuresh, Etc. Peer-to-Peer (P2P) Communication Across Middleboxes.2007:27-35</p><p><b> 附 錄1</b>
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡(luò)聊天工具的設(shè)計與實現(xiàn)畢業(yè)設(shè)計
- 網(wǎng)絡(luò)聊天工具的設(shè)計與實現(xiàn)畢業(yè)論文
- 基于java的網(wǎng)絡(luò)安全聊天工具畢業(yè)設(shè)計
- 網(wǎng)絡(luò)視頻聊天工具的設(shè)計與實現(xiàn)畢業(yè)論文
- 畢業(yè)論文---局域網(wǎng)聊天工具的設(shè)計與實現(xiàn)
- 聊天工具仿真表情插件的設(shè)計與實現(xiàn).pdf
- 基于OpenSSL開發(fā)的聊天工具的設(shè)計與實現(xiàn).pdf
- 基于netbios的聊天工具
- 局域網(wǎng)聊天工具設(shè)計畢業(yè)論文
- java基于tcp_ip協(xié)議的聊天工具的設(shè)計與開發(fā)畢業(yè)設(shè)計
- 基于linux的socket網(wǎng)絡(luò)編程聊天工具課程設(shè)計
- 基于android的即時聊天工具
- 基于qt4的視頻聊天工具的設(shè)計與實現(xiàn)
- 基于QT4的視頻聊天工具的設(shè)計與實現(xiàn).doc
- 網(wǎng)絡(luò)聊天工具與傳統(tǒng)紙媒跨媒體整合初探.pdf
- java網(wǎng)頁版即時聊天工具開題報告
- 開題報告-基于android的即時聊天工具
- 基于.net的局域網(wǎng)聊天工具
- 課程設(shè)計報告---聊天工具服務(wù)器端設(shè)計
- 基于QT4的視頻聊天工具的設(shè)計與實現(xiàn)-任務(wù)書 .doc
評論
0/150
提交評論