2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目 錄</b></p><p><b>  摘要I</b></p><p>  AbstractII</p><p><b>  1 引 言1</b></p><p>  1.1 課題背景及意義:1</p><p>

2、  1.2 課題現(xiàn)狀1</p><p>  1.3 本文的主要工作:2</p><p>  1.4開發(fā)平臺與技術(shù)的選擇及介紹2</p><p>  1.4.1 開發(fā)環(huán)境的介紹2</p><p>  1.4.2 WINDOWS SOCKETS網(wǎng)絡(luò)編程接口概述3</p><p>  1.4.3 VC

3、++6.0開發(fā)平臺簡介3</p><p>  2 需求分析及可行性研究3</p><p>  2.1 需求分析:3</p><p>  2.1.1 時(shí)間要求3</p><p>  2.1.2 功能要求3</p><p>  2.1.3 系統(tǒng)基本流程圖4</p><p>  2.

4、1.4 性能要求4</p><p>  2.1.5 測試環(huán)境規(guī)定4</p><p>  2.2 可行性研究:4</p><p>  3 相關(guān)開發(fā)技術(shù)的原理性說明5</p><p>  3.1 win32編程原理及MFC框架5</p><p>  3.1.1 WIN32編程原理5</p>

5、<p>  3.1.2 MFC框架6</p><p>  3.2 TCP/IP 協(xié)議及WINDOWS SOCKETS網(wǎng)絡(luò)編程接口8</p><p>  3.2.1 TCP/IP協(xié)議簡介8</p><p>  3.2.2 WINDOWS SOCKETS網(wǎng)絡(luò)編程接口概述10</p><p>  3.3 多線程編程技

6、術(shù)11</p><p>  3.3.1 進(jìn)程及線程概述11</p><p>  3.3.2 Win32 API對多線程編程的支持12</p><p><b>  4 總體設(shè)計(jì)13</b></p><p>  4.1體系結(jié)構(gòu)設(shè)計(jì)13</p><p>  4.2 功能模塊劃分14&l

7、t;/p><p>  4.3 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)15</p><p>  4.4 用戶界面設(shè)計(jì)15</p><p>  4.4.1 服務(wù)器端顯示界面:15</p><p>  4.4.2 客戶端顯示界面:16</p><p>  5 詳細(xì)設(shè)計(jì)及編碼實(shí)現(xiàn)16</p><p>  5.1 主框

8、架及用戶界面模塊詳細(xì)設(shè)計(jì)16</p><p>  5.2 網(wǎng)絡(luò)掃描模塊詳細(xì)設(shè)18</p><p>  5.3 信息發(fā)送模塊詳細(xì)設(shè)計(jì)18</p><p>  5.4 信息接收模塊詳細(xì)設(shè)計(jì)20</p><p><b>  6 測 試20</b></p><p><b>  結(jié) 論

9、21</b></p><p><b>  致 謝22</b></p><p><b>  參考文獻(xiàn)23</b></p><p><b>  摘要</b></p><p>  隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展,各種各樣基于網(wǎng)絡(luò)的應(yīng)用也隨之誕生,比如基于互聯(lián)網(wǎng)的信息發(fā)布,

10、通信,數(shù)據(jù)共享等等。局域網(wǎng)的發(fā)展也同樣迅速。很多政府機(jī)構(gòu),企業(yè),學(xué)校,都是先以一個(gè)統(tǒng)一的局域網(wǎng)聯(lián)結(jié)在一起,再分別接入INTERNET.因此基于局域網(wǎng)的即時(shí)通信工具,就這樣應(yīng)運(yùn)而生了。所以本文提出了一個(gè)更加合理的設(shè)計(jì),并在WINDOWS平臺上加以了實(shí)現(xiàn).在本實(shí)現(xiàn)內(nèi)將客戶端和服務(wù)端綜合在一個(gè)程序之內(nèi),用多線程實(shí)現(xiàn)不同的并行任務(wù)。并進(jìn)行了人性化的界面設(shè)計(jì),使用起來更加簡單方便,并且功能十分合理,又易于擴(kuò)展以及個(gè)性化定制。本文通過局域網(wǎng)聊天系統(tǒng)

11、來具體共享內(nèi)存實(shí)現(xiàn)進(jìn)程間的數(shù)據(jù)交換,利用windows消息機(jī)制實(shí)現(xiàn)進(jìn)程間的同步,兩種機(jī)制結(jié)合使用。</p><p>  關(guān)鍵詞:局域網(wǎng);即時(shí)通信;客戶端;服務(wù)端;多線程;共享內(nèi)存;信息</p><p><b>  Abstract</b></p><p>  Along with the high-speed development of th

12、e computer network technology, various of applications based on network was born, like information releasing, data sharing ... The development of the LAN is the same fast. Some governments, enterprises and schools consti

13、tute a LAN first ,then join into INTERNET. So the instant messenger in LAN was borned. So I make a new design, and implement it on WINDOWS platform. In my implementation the client and the server were integrated in one p

14、rogram with multi</p><p>  Key words: LAN, instant messaging, client, server, multi thread,share memory,Information </p><p><b>  1 引 言</b></p><p>  1.1 課題背景及意義:</p>

15、;<p>  近年來,隨著全球信息化進(jìn)程的不斷發(fā)展,網(wǎng)絡(luò)也在飛速發(fā)展。出于高效、快速地處理各種事務(wù)的目的,越來越多的企業(yè)在其內(nèi)部使用局域網(wǎng)來進(jìn)行工作。在內(nèi)部局域網(wǎng)的幫助下,企業(yè)得以簡化信息流程,提高信息交換的速度,從而提高工作效率。然而,隨著企業(yè)規(guī)模的擴(kuò)大,業(yè)務(wù)量的增加,在局域網(wǎng)上運(yùn)行的應(yīng)用越來越多,如知識庫、網(wǎng)絡(luò)會議、數(shù)據(jù)庫應(yīng)用和數(shù)據(jù)的同步與備份等,這些應(yīng)用對局域網(wǎng)的信息吞吐、處理能力的要求也越來越高。這些在企業(yè)內(nèi)部原有

16、局域網(wǎng)設(shè)計(jì)之初未曾考慮到的新情況的出現(xiàn)使得局域網(wǎng)不堪重負(fù),容易發(fā)生信息阻塞,此時(shí),局域網(wǎng)不但不能提高生產(chǎn)效率,反而成為企業(yè)發(fā)展的瓶頸。 </p><p>  為了解決上述矛盾,人們提出了許多方法。提升網(wǎng)絡(luò)帶寬及增加服務(wù)器的吞吐能力是解決此矛盾的一種方法。然而,從企業(yè)運(yùn)行的成本方面考慮,無論是單純地提升網(wǎng)絡(luò)帶寬或增加服務(wù)器的吞吐能力都不能從根本上解決局域網(wǎng)資源緊張的問題,對舊有局域網(wǎng)的大規(guī)模硬件改造反而會增加企

17、業(yè)的負(fù)擔(dān)。 </p><p>  我在本文中將討論一種基于Socket的局域網(wǎng)通信工具的設(shè)計(jì)與實(shí)現(xiàn)方法?;赟ocket的局域網(wǎng)通信軟件可以為企業(yè)原有的局域網(wǎng)提供一種良好,安全,快速的通信機(jī)制。它的實(shí)現(xiàn)無需對企業(yè)原有的局域網(wǎng)硬件進(jìn)行任何改動,具有實(shí)現(xiàn)成本低廉的優(yōu)點(diǎn),它的使用能有效地降低局域網(wǎng)通信負(fù)荷,提高局域網(wǎng)的使用效率,可以很好地解決企業(yè)內(nèi)部局域網(wǎng)的各種通信需求。 </p><p> 

18、 基于Socket的局域網(wǎng)聊天工具是此類局域網(wǎng)通信軟件的具體實(shí)例之一,它很好地詮釋了Socket通信的原理,并且在企業(yè)內(nèi)部通信、教學(xué)、討論等應(yīng)用中都具有一定的實(shí)用價(jià)值。它具有信息收發(fā)速度快,保密性好,占用網(wǎng)絡(luò)帶寬資源低,占用服務(wù)器吞吐能力低,易于編程實(shí)現(xiàn)等優(yōu)點(diǎn)。</p><p>  基于Socket的局域網(wǎng)通信軟件應(yīng)用范圍廣闊,不但可以處理傳統(tǒng)的通信需求,而且也能擴(kuò)展以適應(yīng)新型的網(wǎng)絡(luò)應(yīng)用,如網(wǎng)絡(luò)教育,數(shù)據(jù)影音傳輸

19、等,擁有廣泛的應(yīng)用前景。</p><p>  1.2 課題現(xiàn)狀 </p><p>  基于局域網(wǎng)的即時(shí)通信工具,實(shí)際上是互聯(lián)網(wǎng)即時(shí)通信工具的一個(gè)小規(guī)模版本,廣域網(wǎng)上的即時(shí)通信工具,如今一般采用UDP或者 TCP協(xié)議體系來實(shí)現(xiàn) ,開發(fā)技術(shù)已經(jīng)比較成熟,比如較早的ICQ,MSN Messanger,Yahoo 通這些國外開發(fā)的產(chǎn)品,還有國產(chǎn)的有名的QQ,新浪UC,LAVA-LAVA等,這

20、些工具統(tǒng)統(tǒng)都實(shí)現(xiàn)了廣域網(wǎng)上的即時(shí)通信,盡管都是即時(shí)通信,實(shí)現(xiàn)了即時(shí)聊天,以及文件傳輸?shù)闹饕δ?,但是也各有各的特色,比如ICQ的巨大客戶群,MSN的個(gè)性化表情,YAHOO通的易操作性等。而QQ也具有一個(gè)相當(dāng)方便的屏幕截圖功能,另外就是,所有上述軟件都實(shí)現(xiàn)了網(wǎng)絡(luò)即時(shí)的視頻,語音聊天功能。這些軟件,在使用方面各有特色,在實(shí)現(xiàn)方面也各有所長,但基于這些產(chǎn)品正在商業(yè)運(yùn)營階段,其實(shí)現(xiàn)方式屬于商業(yè)機(jī)密,具體細(xì)節(jié)不可能得知,但是它在大的方面無非就是各

21、種利用各種平臺上的網(wǎng)絡(luò)通信接口,建構(gòu)基于下層TCP/IP,或者UDP/IP協(xié)議的軟件產(chǎn)品。在局域網(wǎng)內(nèi),這些功能的實(shí)現(xiàn)跟廣域網(wǎng)相比更加簡單,因?yàn)榫钟蚓W(wǎng)的網(wǎng)絡(luò)結(jié)構(gòu)本身比廣域網(wǎng)要復(fù)雜,但是又可以借些理解網(wǎng)絡(luò)協(xié)議,以及網(wǎng)絡(luò)通信工具的實(shí)現(xiàn)原理,所以仍然極具研究價(jià)值。</p><p>  1.3 本文的主要工作:</p><p>  本文主要工作是設(shè)計(jì)一個(gè)基于WINDOWS平臺的局域網(wǎng)即時(shí)聊天工具,然

22、后闡述本軟件的功能、特點(diǎn)及使用方法,并詳細(xì)闡述開發(fā)本軟件所用的相關(guān)技術(shù),具體分析本軟件的各個(gè)模塊的功能及實(shí)現(xiàn)方法,說明本軟件的設(shè)計(jì)思想及方法。</p><p>  1.4開發(fā)平臺與技術(shù)的選擇及介紹</p><p>  1.4.1 開發(fā)環(huán)境的介紹</p><p>  我所設(shè)計(jì)的是一個(gè)面向中小型機(jī)構(gòu)內(nèi)部通信需求的局域網(wǎng)即時(shí)信息軟件,要在短時(shí)間內(nèi)開發(fā)出來并且要滿足客戶

23、要求,無論是硬件還是軟件都要選擇合適,要求如下:開發(fā)設(shè)備應(yīng)該完備;開發(fā)機(jī)器的性能必須穩(wěn)定;操作系統(tǒng)的選擇必須恬當(dāng);開發(fā)出的程序可以在盡可能多的平臺上運(yùn)行;要求運(yùn)行機(jī)配置盡可能低檔。對此,我們選擇的硬件環(huán)境和軟件環(huán)境如下: </p><p>  (1) 硬件環(huán)境 </p><p>  開發(fā)該系統(tǒng)應(yīng)盡可能采用高檔的硬件。因此,在應(yīng)用時(shí)應(yīng)采用更好的配置。 </p><

24、;p>  處理器:Intel Pentium PIII或更高處理器。 </p><p>  內(nèi)存:128MB或更高。 </p><p>  網(wǎng)絡(luò):局域網(wǎng)。 </p><p>  (2) 軟件環(huán)境 </p><p>  選擇好的操作系統(tǒng)和好的編程語言是系統(tǒng)優(yōu)劣的關(guān)鍵,我們要求系統(tǒng)在盡可能多的環(huán)境下運(yùn)行,故選擇W

25、indows XP平臺,對于一些無法在98中運(yùn)行的API函數(shù),一律不采用,并采取優(yōu)化的算法編寫程序。因VC6.0具有友好的集成開發(fā)界面、面向?qū)ο蟮目梢暬_發(fā)模式、良好的數(shù)據(jù)庫及多媒體應(yīng)用支持以及高效的軟件開發(fā)與程序運(yùn)行,功能更大,開發(fā)效率更高,不僅是網(wǎng)絡(luò)環(huán)境下的優(yōu)秀前端開發(fā)語言和工具,也是服務(wù)器端Web編程的優(yōu)秀工具。加之我本人對本系統(tǒng)的操作最為熟練,所以選擇該平臺為開發(fā)環(huán)境。 </p><p>  操作系統(tǒng)

26、:Windows XP或Window2000。 </p><p>  開發(fā)工具:VC++6.0。 </p><p>  1.4.2 WINDOWS SOCKETS網(wǎng)絡(luò)編程接口概述</p><p>  既然選定了WINDOWS平臺,而又要開發(fā)網(wǎng)絡(luò)通信程序,所以可以選擇WINDOWS的SOCKETS編程接口,Windows Sockets是一套開放的、支持多

27、種協(xié)議的Windows下的網(wǎng)絡(luò)編程接口?,F(xiàn)在的Winsock已經(jīng)基本上實(shí)現(xiàn)了與協(xié)議無關(guān),你可以使用Winsock來調(diào)用多種協(xié)議的功能,但較常使用的是TCP/IP協(xié)議。Winsockets無疑是我們進(jìn)行網(wǎng)絡(luò)編程的利器。</p><p>  1.4.3 VC++6.0開發(fā)平臺簡介</p><p>  開發(fā)平臺我選用了VC6.0,因?yàn)橐恢币詠矶际褂肰C6進(jìn)行學(xué)習(xí),對這個(gè)IDE最為熟悉,再者V

28、C同樣是由微軟開發(fā)的系統(tǒng),與其操作系統(tǒng),網(wǎng)絡(luò)接口具有最為密切的契合優(yōu)點(diǎn),所以選擇了VC6.0。</p><p>  2 需求分析及可行性研究</p><p><b>  2.1 需求分析:</b></p><p>  2.1.1 時(shí)間要求</p><p>  本項(xiàng)目作為大學(xué)本科畢業(yè)設(shè)計(jì)題目,從3月8號接受選題開始,在5

29、月10號之前完成系統(tǒng)設(shè)計(jì),編碼實(shí)現(xiàn)工作,在5月20號之前完成畢業(yè)設(shè)計(jì)論文初稿,6月1號之前最終完成論文。</p><p>  2.1.2 功能要求</p><p>  (1)用戶端之間的信息發(fā)送,本程序需要實(shí)現(xiàn)的最基本的功能</p><p> ?。?)在線用戶主機(jī)名列表的維護(hù)。</p><p> ?。?)在C/S模式中,服務(wù)器與客戶端是相互

30、依賴的。在客戶端啟用以后,需要查看服務(wù)器端是否在線,服務(wù)器在線才能正常使用客戶端,如果服務(wù)器不在線,則在檢測一定次數(shù)以后自動退出客戶端程序。在使用過程中,客戶端在指定時(shí)間內(nèi)未向服務(wù)器端發(fā)送信息的,服務(wù)器認(rèn)為客戶端下線;客戶端在一定時(shí)間內(nèi)未收到服務(wù)器端信息的,認(rèn)為服務(wù)器已經(jīng)下線,則提示用戶并建議退出,在用戶一定時(shí)間后沒有退出的則自動關(guān)閉客戶端程序。</p><p>  2.1.3 系統(tǒng)基本流程圖</p>

31、;<p>  圖2-1 聊天系統(tǒng)工作流程圖</p><p>  2.1.4 性能要求</p><p>  首先要求程序要完全可靠,可以應(yīng)付種種由于系統(tǒng)問題產(chǎn)生的錯(cuò)誤,比如初始網(wǎng)絡(luò)失敗,對方突然下線等。要求提前設(shè)想到類似的盡可能多的可能發(fā)生的事件,做出相應(yīng)的應(yīng)對措施,并向用戶提交簡單易懂清晰明白的提示信息。</p><p>  程序要有良好的容錯(cuò)性,當(dāng)

32、用戶進(jìn)行非法操作時(shí)或者系統(tǒng)本身出現(xiàn)問題時(shí)要能以最好的方式退出程序,避免發(fā)生程序假死現(xiàn)象。</p><p>  開發(fā)文檔要有好的易理解性,如果系統(tǒng)又要交由別人接手開發(fā),或者自己由于種種原因需要進(jìn)行二次開發(fā),那么要保證以后能夠清晰的理解整個(gè)系統(tǒng)的設(shè)計(jì)思路以及實(shí)現(xiàn)細(xì)節(jié)。</p><p>  要求程序?qū)λ\(yùn)行之系統(tǒng)的硬件條件要求盡可能低,運(yùn)行時(shí)內(nèi)存占用盡可能小,響應(yīng)速度要盡可能快。并且不發(fā)生內(nèi)存泄

33、漏之類影響系統(tǒng)運(yùn)行的錯(cuò)誤事件。并且要求易于維護(hù)及擴(kuò)展。所以應(yīng)該采用模塊化開發(fā),各個(gè)模塊之間不要有太多的聯(lián)系,以免維護(hù)困難。</p><p>  2.1.5 測試環(huán)境規(guī)定</p><p>  在開發(fā)完成以后,自己進(jìn)行一個(gè)全面的測試。</p><p>  2.2 可行性研究:</p><p> ?。?)成本可行性分析</p>&l

34、t;p>  因?yàn)楸拒浖蛔鲩_發(fā)學(xué)習(xí)使用,所以暫且不考慮經(jīng)濟(jì)成本及盈利問題。</p><p>  (2)技術(shù)可行性分析</p><p>  首先我已經(jīng)搭建好開發(fā)所需要的軟硬件平臺,并進(jìn)行了合理而完善的需求分析,做好了充分的前期準(zhǔn)備工作,其次因?yàn)楸境绦虻钠脚_將基于WINDOWS,將要使用網(wǎng)絡(luò)通信技術(shù),而WINDOWS有完善成熟的網(wǎng)絡(luò)通信接口,以及與VC開發(fā)環(huán)境的嚴(yán)密契合能力,加之相類似的

35、更大規(guī)模的INTERNET通信工具產(chǎn)品也已有例在先,所以這個(gè)程序的開發(fā)可行性在技術(shù)上是完全可行的。</p><p>  3 相關(guān)開發(fā)技術(shù)的原理性說明</p><p>  3.1 win32編程原理及MFC框架</p><p>  3.1.1 WIN32編程原理</p><p>  所謂的Win32開發(fā),就是在C語言的層面上,直接使用W

36、in32 API開發(fā)Windows應(yīng)用程序或者系統(tǒng)程序。雖說現(xiàn)在直接用Win32 API開發(fā)應(yīng)用程序的人已經(jīng)不多了,但是深入理解Windows系統(tǒng)程序設(shè)計(jì)原理,仍然是成為Windows開發(fā)高手的良好途徑。所謂的Win32,其實(shí)是一個(gè)API規(guī)范,與UNIX系統(tǒng)編程接口標(biāo)準(zhǔn)POSIX是相對應(yīng)的。下面是進(jìn)行直接的WIN32 SDK方式編程的基本思路或者說是一個(gè)框架:</p><p>  一個(gè)WINDOWS程序分為程序代

37、碼和UI(User Interface 用戶接口)資源兩大部份,兩部份最后以RC編譯程序整合為一個(gè)完整的EXE文件。所謂UI資源是指功能菜單、對話框、程序圖標(biāo)、光標(biāo)形狀等等東西。這些UI資源的實(shí)際內(nèi)容(二進(jìn)制代碼)系借助各種工具產(chǎn)生,并以各種擴(kuò)展名存在,如 .ico .bmp .cur等等。程序員必須在一個(gè)所謂的資源描述檔(.rc )中描述它們。RC編譯器( RC.EXE )讀取RC 文件的描述后將所有UI資源文件集中制作出一個(gè).RES

38、 文件,再與程序代碼結(jié)合在一起,這才是一個(gè)完整的 Windows可執(zhí)行文件。</p><p>  與控制臺程序相同的是,一個(gè)WIN32程序也必須有一個(gè)程序入口點(diǎn),但是在這兒它不再叫main(),而叫做WinMain(),當(dāng)WINDOWS的SHELL檢測到用戶欲執(zhí)行一個(gè)EXE程序,就會調(diào)用加載器把程序進(jìn)行加載,然后調(diào)用C startup code,后者再調(diào)用WinMain(),程序的執(zhí)行就開始了,WinMain()

39、函數(shù)的原型為:</p><p>  int CALLBACK WinMain( HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow);</p><p>  圖3-1 32位WINDOWS程序的開發(fā)流程</p><p>  下面程序必須進(jìn)行必要的初始化工作-產(chǎn)生窗口,第一步是

40、注冊一個(gè)窗口類:用API函數(shù):RegisterClass(),而這個(gè)函數(shù)需要一個(gè)已經(jīng)定義好的系統(tǒng)結(jié)構(gòu):WNDCLASS,這個(gè)結(jié)構(gòu)里面定義了窗口的種種屬性,需要自己定義,但是許多屬性都有默認(rèn)值。然后調(diào)用CreateWindow()函數(shù)來產(chǎn)生具有上述定義屬性的已注冊窗口,但是需要注意的是它只是生成窗口,但并不顯示之,所以還需要調(diào)用一個(gè)函數(shù)ShowWindow()將它顯示在屏幕上,做完這些初始化工作以后,系統(tǒng)將進(jìn)入消息循環(huán):</p>

41、;<p>  while (GetMessage(&msg, NULL, 0, 0)){</p><p>  TranslateMessage(&msg);</p><p>  DispatchMessage(&msg);}</p><p>  當(dāng)消息循環(huán)捕捉到消息以后將交由窗口函數(shù)WndProc()窗口函數(shù)進(jìn)行相應(yīng)的處理。這樣

42、,一個(gè)基于消息事件驅(qū)動的WIN32程序的雛形就建立了起來。</p><p>  3.1.2 MFC框架</p><p>  由上面的介紹可以看出,直接用API函數(shù)開發(fā)一個(gè)WIN32程序是相當(dāng)麻煩的,有好多既定的重復(fù)性的工作要做,所以微軟就用C++的類機(jī)制將絕大部分的API函數(shù)進(jìn)行了封裝,構(gòu)成了類,并且將基本的流程也封裝在類機(jī)制下面,大大簡化了WIN32開的的復(fù)雜性,尤其是在開發(fā)比較大型程

43、序的時(shí)候這個(gè)便宜性更會得以體現(xiàn)。它就是Microsoft Foundation Classes,簡稱為MFC,可以說它是VC開發(fā)環(huán)境的一個(gè)核心構(gòu)件。MFC構(gòu)架了一個(gè)龐大的類體系結(jié)構(gòu),在4.0時(shí)代就多達(dá)189個(gè)類,程序代碼達(dá)252個(gè)文件,58個(gè)頭文件,共10MB之多,MFC4.2時(shí)又多加了29個(gè)類,但是最為主干的是下面類結(jié)構(gòu)示圖所示的一些類:</p><p>  圖3-2 MFC類框架主體 </p>

44、<p>  CObject 是 MFC 類庫的根類。 </p><p>  MFC 類庫包括: </p><p> ?。?)CCmdTarget 類:是 CObject 類的子類,它是 MFC 庫中所有具有消息映射屬性的類的公共基類。它的子類有 CWinThread 類, CWnd 類、 CDocument 類,從 CCndTarget 類派生的類能在程序運(yùn)行時(shí)動態(tài)創(chuàng)建對象,并處

45、理命令消息。 </p><p> ?。?)CWinThread 類:是 CCmdTarget 的子類。 CWinThread 是所有線程類的基類,封裝了應(yīng)用程序操作的多線程功能。應(yīng)用程序類 CWinApp 是 CWinThread 的子類,封裝了初始化、運(yùn)行、終止應(yīng)用程序的代碼。 </p><p>  (3)CWnd 類:窗口類,是 CcmdTarget 類的子類,從 CWnd 派生的類可

46、以擁有自己的窗口,并對它進(jìn)行控制。窗口框架類 CFrameWnd 和 CView 類是 CWnd 的子類,前者創(chuàng)建和維護(hù)窗口的邊框、菜單欄、工具欄、狀態(tài)欄,負(fù)責(zé)顯示和搜索用戶命令,后者負(fù)責(zé)為文檔提供一個(gè)或幾個(gè)視圖。視圖的作用是為修改、查詢文檔等任務(wù)提供人機(jī)交互的界面。 </p><p> ?。?)文檔類 CDocument 類:是 CCmdTarget 類的子類,負(fù)責(zé)封裝和維護(hù)文檔。文檔包括應(yīng)用程序的工作成果或環(huán)

47、境設(shè)置數(shù)據(jù)等,可以是程序需要保存的任何內(nèi)容。 </p><p>  一個(gè) MFC 應(yīng)用程序并不直接操作上述類,而是以上述類為基類派生新的類,構(gòu)建 Windows 應(yīng)用程序的基本框架。</p><p>  構(gòu)建一個(gè)基于MFC框架的程序,可以使用MFC的向?qū)С绦?,但首先要明白,一個(gè)基于MFC的程序可以有幾種類型:基于單文檔結(jié)構(gòu)的程序,基于多文檔結(jié)構(gòu)的程序以及基于對話框的應(yīng)用程序,不同類型的程序

48、具有不同的程序?qū)傩?。使用其向?qū)б约翱丶幊?,使得不論是界面編寫,還是程序內(nèi)核設(shè)計(jì),都更加的簡單。其中有合理的消息映射機(jī)制,有方便的運(yùn)行時(shí)類型識別功能,更有文檔/視圖結(jié)構(gòu)設(shè)計(jì),文檔串行化功能等非常多的優(yōu)秀功能。</p><p>  3.2 TCP/IP 協(xié)議及WINDOWS SOCKETS網(wǎng)絡(luò)編程接口</p><p>  3.2.1 TCP/IP協(xié)議簡介</p><p

49、> ?。?)TCP/IP協(xié)議</p><p>  通常包含了一系列與“TCP(傳輸控制協(xié)議)”和“IP(網(wǎng)際協(xié)議)”有聯(lián)系的網(wǎng)絡(luò)協(xié)議,它包括其它的協(xié)議,應(yīng)用軟件,甚至網(wǎng)絡(luò)媒介。這些協(xié)議的示例是:UDP(User Datagram Protocol)協(xié)議、ICMP(Internet Control Message Protocol)協(xié)議、ARP(地址解析協(xié)議)和其他一些協(xié)議的協(xié)議組。應(yīng)用的示例:telnet(

50、遠(yuǎn)程登錄)、ftp(文件傳遞協(xié)議)、http等。 </p><p><b> ?。?)邏輯結(jié)構(gòu):</b></p><p><b>  圖3-3 邏輯結(jié)構(gòu)</b></p><p>  這是TCP/IP協(xié)議的分層結(jié)構(gòu)在互連網(wǎng)計(jì)算機(jī)上的表示,用互連網(wǎng)技術(shù)互相通信的每臺計(jì)算機(jī)都有這樣的分層結(jié)構(gòu)。這樣的分層結(jié)構(gòu)決定了計(jì)算機(jī)在inte

51、rnet上互相通信的方式。數(shù)據(jù)通過這樣的分層結(jié)構(gòu)從上層傳到底層,然后通過網(wǎng)線把數(shù)據(jù)傳送出去。底層的水平線代表以太網(wǎng)網(wǎng)線,“O”代表收發(fā)器,“*”代表IP地址,“@”代表網(wǎng)址,理解這樣的分層結(jié)構(gòu)是理解INTERNET技術(shù)的基礎(chǔ)。</p><p>  (3)本論文涉及到的協(xié)議:IP、TCP </p><p>  IP(Internet Protocol)是TCP/IP的心臟,也是網(wǎng)絡(luò)層中最重要

52、的協(xié)議。 IP層接收由更低層(網(wǎng)絡(luò)接口層例如以太網(wǎng)設(shè)備驅(qū)動程序)發(fā)來的數(shù)據(jù)包,并把該數(shù)據(jù)包發(fā)送到更高層---TCP或UDP層;相反,IP層也把從TCP或UDP層接收來的數(shù)據(jù)包傳送到更低層。IP數(shù)據(jù)包是不可靠的,因?yàn)镮P并沒有做任何事情來確認(rèn)數(shù)據(jù)包是按順序發(fā)送的或者沒有被破壞。IP數(shù)據(jù)包中含有發(fā)送它的主機(jī)的地址(源地址)和接收它的主機(jī)的地址(目的地址)。 </p><p>  UDP(IP協(xié)議號17)是一個(gè)無連接的

53、數(shù)據(jù)報(bào)協(xié)議。它是一個(gè)“best effort”或者“不可靠”協(xié)議——不是因?yàn)樗貏e不可靠,而是因?yàn)樗粰z查數(shù)據(jù)包是否已經(jīng)到達(dá)目的地,并且不保證它們按順序到達(dá)。UDP的典型性應(yīng)用是如流媒體(音頻和視頻等)這樣按時(shí)到達(dá)比可靠性更重要的應(yīng)用,或者如DNS查找這樣的簡單查詢/響應(yīng)應(yīng)用,如果需要建立可靠的連結(jié),哪么所作的額外工作將是不成比例地大。本程序只應(yīng)用于局域網(wǎng)中,局域網(wǎng)中的數(shù)據(jù)流傳輸?shù)目煽啃愿?,故選擇UDP協(xié)議。</p>&l

54、t;p>  3.2.2 WINDOWS SOCKETS網(wǎng)絡(luò)編程接口概述</p><p>  在網(wǎng)絡(luò)編程中最常用的方案便是Client/Server (客戶機(jī)/服務(wù)器)模型。在這種方案中客戶應(yīng)用程序向服務(wù)器程序請求服務(wù)。一個(gè)服務(wù)程序通常在一個(gè)眾所周知的地址監(jiān)聽對服務(wù)的請求,也就是說,服務(wù)進(jìn)程一直處于休眠狀態(tài),直到一個(gè)客戶向這個(gè)服務(wù)的地址提出了連接請求。在這個(gè)時(shí)刻,服務(wù)程序被"驚醒"并且

55、為客戶提供服務(wù)-對客戶的請求作出適當(dāng)?shù)姆磻?yīng)。</p><p>  為了方便這種Client/Server模型的網(wǎng)絡(luò)編程,90年代初,由Microsoft聯(lián)合了其他幾家公司共同制定了一套WINDOWS下的網(wǎng)絡(luò)編程接口,即Windows Sockets規(guī)范,它不是一種網(wǎng)絡(luò)協(xié)議,而是一套開放的、支持多種協(xié)議的Windows下的網(wǎng)絡(luò)編程接口。現(xiàn)在的Winsock已經(jīng)基本上實(shí)現(xiàn)了與協(xié)議無關(guān),你可以使用Winsock來調(diào)用多

56、種協(xié)議的功能,但較常使用的是TCP/IP協(xié)議。</p><p>  Socket實(shí)際在計(jì)算機(jī)中提供了一個(gè)通信端口,可以通過這個(gè)端口與任何一個(gè)具有Socket接口的計(jì)算機(jī)通信。應(yīng)用程序在網(wǎng)絡(luò)上傳輸,接收的信息都通過這個(gè)Socket接口來實(shí)現(xiàn)。如下圖所示:</p><p>  圖3-4 面向連接的套接字的系統(tǒng)調(diào)用圖</p><p>  微軟為Visual C++定義了W

57、insock類如CAsyncSocket類和派生于CAsyncSocket 的CSocket類,它們簡單易用,我們當(dāng)然可以使用這些類來實(shí)現(xiàn)自己的網(wǎng)絡(luò)程序,但是為了更好的了解Winsock API編程技術(shù),本設(shè)計(jì)中將使用底層的API函數(shù)實(shí)現(xiàn) Winsock 平臺的即時(shí)通信工具。</p><p>  在VC中進(jìn)行WINSOCK的API編程開發(fā)的時(shí)候,需要在項(xiàng)目中使用下面的三個(gè)文件,否則會出現(xiàn)編譯錯(cuò)誤。</p&g

58、t;<p>  (1) WINSOCK.H: 這是WINSOCK API的頭文件,需要包含在項(xiàng)目中。</p><p>  (2) WSOCK32.LIB: WINSOCK API連接庫文件。</p><p>  (3) WINSOCK.DLL: WINSOCK的動態(tài)連接庫,位于WINDOWS的安裝目錄下。</p><p>  3.3 多線程編程技術(shù)&l

59、t;/p><p>  3.3.1 進(jìn)程及線程概述</p><p>  進(jìn)程和線程都是操作系統(tǒng)的概念。進(jìn)程是應(yīng)用程序的執(zhí)行實(shí)例,每個(gè)進(jìn)程是由私有的虛擬地址空間、代碼、數(shù)據(jù)和其它各種系統(tǒng)資源組成,進(jìn)程在運(yùn)行過程中創(chuàng)建的資源隨著進(jìn)程的終止而被銷毀,所使用的系統(tǒng)資源在進(jìn)程終止時(shí)被釋放或關(guān)閉。</p><p>  線程是進(jìn)程內(nèi)部的一個(gè)執(zhí)行單元。系統(tǒng)創(chuàng)建好進(jìn)程后,實(shí)際上就啟動執(zhí)行

60、了該進(jìn)程的主執(zhí)行線程,主執(zhí)行線程以函數(shù)地址形式,比如說main或WinMain函數(shù),將程序的啟動點(diǎn)提供給Windows系統(tǒng)。主執(zhí)行線程終止了,進(jìn)程也就隨之終止。</p><p>  每一個(gè)進(jìn)程至少有一個(gè)主執(zhí)行線程,它無需由用戶去主動創(chuàng)建,是由系統(tǒng)自動創(chuàng)建的。用戶根據(jù)需要在應(yīng)用程序中創(chuàng)建其它線程,多個(gè)線程并發(fā)地運(yùn)行于同一個(gè)進(jìn)程中。一個(gè)進(jìn)程中的所有線程都在該進(jìn)程的虛擬地址空間中,共同使用這些虛擬地址空間、全局變量和系

61、統(tǒng)資源,所以線程間的通訊非常方便,多線程技術(shù)的應(yīng)用也較為廣泛。</p><p>  多線程可以實(shí)現(xiàn)并行處理,避免了某項(xiàng)任務(wù)長時(shí)間占用CPU時(shí)間。要說明的一點(diǎn)是,目前大多數(shù)的計(jì)算機(jī)都是單處理器(CPU)的,為了運(yùn)行所有這些線程,操作系統(tǒng)為每個(gè)獨(dú)立線程安排一些CPU時(shí)間,操作系統(tǒng)以輪換方式向線程提供時(shí)間片,這就給人一種假象,好象這些線程都在同時(shí)運(yùn)行。由此可見,如果兩個(gè)非常活躍的線程為了搶奪對CPU的控制權(quán),在線程切換

62、時(shí)會消耗很多的CPU資源,反而會降低系統(tǒng)的性能。這一點(diǎn)在多線程編程時(shí)應(yīng)該注意。</p><p>  Win32 SDK函數(shù)支持進(jìn)行多線程的程序設(shè)計(jì),并提供了操作系統(tǒng)原理中的各種同步、互斥和臨界區(qū)等操作。Visual C++ 6.0中,使用MFC類庫也實(shí)現(xiàn)了多線程的程序設(shè)計(jì),使得多線程編程更加方便。</p><p>  3.3.2 Win32 API對多線程編程的支持</p>

63、<p>  Win32 提供了一系列的API函數(shù)來完成線程的創(chuàng)建、掛起、恢復(fù)、終結(jié)以及通信等工作。下面將選取其中的一些重要函數(shù)進(jìn)行說明。 </p><p>  (1) HANDLE CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes,</p><p>  DWORD dwStackSize,</p><

64、;p>  LPTHREAD_START_ROUTINE lpStartAddress,</p><p>  LPVOID lpParameter,</p><p>  DWORD dwCreationFlags,</p><p>  LPDWORD lpThreadId);</p><p>  該函數(shù)在其調(diào)用進(jìn)程的進(jìn)程空間里創(chuàng)建一個(gè)新的

65、線程,并返回已建線程的句柄。</p><p>  (2) DWORD SuspendThread(HANDLE hThread);</p><p>  該函數(shù)用于掛起指定的線程,如果函數(shù)執(zhí)行成功,則線程的執(zhí)行被終止。</p><p>  (3) DWORD ResumeThread(HANDLE hThread);</p><p>  該函數(shù)

66、用于結(jié)束線程的掛起狀態(tài),執(zhí)行線程。 </p><p>  (4) VOID ExitThread(DWORD dwExitCode);</p><p>  該函數(shù)用于線程終結(jié)自身的執(zhí)行,主要在線程的執(zhí)行函數(shù)中被調(diào)用。其中參數(shù)dwExitCode用來設(shè)置線程的退出碼。 </p><p>  (5) BOOL TerminateThread(HANDLE hThread

67、,DWORD dwExitCode);</p><p>  一般情況下,線程運(yùn)行結(jié)束之后,線程函數(shù)正常返回,但是應(yīng)用程序可以調(diào)用TerminateThread強(qiáng)行終止某一線程的執(zhí)行。</p><p>  使用TerminateThread()終止某個(gè)線程的執(zhí)行是不安全的,可能會引起系統(tǒng)不穩(wěn)定;雖然該函數(shù)立即終止線程的執(zhí)行,但并不釋放線程所占用的資源。因此,一般不建議使用該函數(shù)。 </

68、p><p>  (6)BOOL PostThreadMessage(DWORD idThread,UINT Msg,WPARAM wParam,LPARAM lParam);</p><p>  該函數(shù)將一條消息放入到指定線程的消息隊(duì)列中,并且不等到消息被該線程處理時(shí)便返回。</p><p>  調(diào)用該函數(shù)時(shí),如果即將接收消息的線程沒有創(chuàng)建消息循環(huán),則該函數(shù)執(zhí)行失敗。&

69、lt;/p><p><b>  4 總體設(shè)計(jì)</b></p><p><b>  4.1體系結(jié)構(gòu)設(shè)計(jì)</b></p><p>  通常的通信工具,都采用客戶機(jī)/服務(wù)器(C/S)體系結(jié)構(gòu),C/S結(jié)構(gòu)是這樣的一種結(jié)構(gòu):它包括一個(gè)客戶機(jī)(或前端),一個(gè)服務(wù)器(或稱后端),客戶機(jī)的作用是訪問和處理遠(yuǎn)程服務(wù)器上的數(shù)據(jù),服務(wù)器的作用是接收

70、和處理客戶機(jī)的數(shù)據(jù)請求。有時(shí),可能有多個(gè)客戶向同一個(gè)服務(wù)器同時(shí)請求服務(wù),這就需要服務(wù)器決定怎樣處理這些請求。Client/Server結(jié)構(gòu)是當(dāng)前數(shù)據(jù)庫應(yīng)用程序中極為流行的一種方式。尤其是網(wǎng)絡(luò)技術(shù)的發(fā)展,使得當(dāng)前很多系統(tǒng)都采用這種方式進(jìn)行構(gòu)造,其最大的優(yōu)點(diǎn)是將計(jì)算機(jī)工作任務(wù)分別由客戶端和服務(wù)器端來共同完成,這樣有利于充分合理的利用系統(tǒng)資源。另外它的服務(wù)器端還可以將信息集中起來,任何客戶機(jī)都可以通過訪問服務(wù)器而獲得所需的信息。Client/

71、Server模型最終可歸結(jié)為一種“請求/應(yīng)答”關(guān)系。一個(gè)請求總是首先被客戶發(fā)出,然后服務(wù)器總是被動地接收請求,返回客戶需要的結(jié)果。在客戶發(fā)出一個(gè)請求之前,服務(wù)進(jìn)程一直處于休眠狀態(tài)。一個(gè)客戶提出請求后,服務(wù)進(jìn)程被“喚醒”并且為客戶提供服務(wù),對客戶的請求做出所需要的應(yīng)答。如下圖所示:</p><p>  圖4-1客戶機(jī)/服務(wù)器通信結(jié)構(gòu)示圖</p><p>  在客戶端啟動后,客戶端計(jì)算得到本地

72、網(wǎng)絡(luò)的廣播地址,進(jìn)行廣播查找服務(wù)器端,服務(wù)器接收到客戶端的廣播信息后返回服務(wù)器地址,則客戶端接收、驗(yàn)證信息并記錄服務(wù)器端地址,然后客戶端啟動定時(shí)期,定時(shí)發(fā)送信息到服務(wù)器,以告知服務(wù)器自己在線,然后服務(wù)器返回在線用戶列表,服務(wù)器依靠客戶端發(fā)送的信息來更新維護(hù)在線用戶列表。在客戶端與服務(wù)器盡心數(shù)據(jù)交換,擁有了在線用戶列表后,就可以選擇IP進(jìn)行客戶端之間的點(diǎn)對點(diǎn)信息交流了。如果服務(wù)器不在線,則客戶端會提示用戶退出,在一定的時(shí)間后自動退出。&l

73、t;/p><p>  4.2 功能模塊劃分</p><p>  根據(jù)以上的系統(tǒng)需求分析,以及體系結(jié)構(gòu)設(shè)計(jì),可以對系統(tǒng)進(jìn)行如下的功能模塊劃分如下圖所示。</p><p>  圖4-2 功能模塊圖</p><p>  其中主線程模塊完成對網(wǎng)絡(luò)的初始化,然后啟動兩個(gè)子線程:服務(wù)端監(jiān)聽線程以及網(wǎng)絡(luò)掃描模塊線程,然后由網(wǎng)絡(luò)掃描模塊得到當(dāng)前的網(wǎng)絡(luò)用戶分布情況

74、,并填充相關(guān)的數(shù)據(jù)結(jié)構(gòu),然后生成用戶列表界面顯示給用戶。</p><p>  通信模塊又包括兩個(gè)子模塊:數(shù)據(jù)接收模塊和數(shù)據(jù)發(fā)送模塊,這兩個(gè)模塊都由系統(tǒng)定義的網(wǎng)絡(luò)事件來觸發(fā)。</p><p>  輸入/輸出模塊用來響應(yīng)用戶雙擊用戶列表的某一項(xiàng)要準(zhǔn)備發(fā)送信息時(shí)的消息,以及當(dāng)系統(tǒng)接收到某個(gè)網(wǎng)絡(luò)用戶發(fā)送來的消息,要將其顯示給用戶的時(shí)候。</p><p>  網(wǎng)絡(luò)掃描模塊是由

75、主線程模塊啟動,進(jìn)行網(wǎng)絡(luò)掃描,確定哪些用戶當(dāng)前處于可到達(dá)狀態(tài),以及哪些可到達(dá)狀態(tài)的用戶安裝有相應(yīng)的通信軟件,并啟動之可以與之進(jìn)行通信。</p><p>  4.3 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)</p><p> ?。?)在線用戶信息結(jié)構(gòu)體: </p><p>  struct USERINFO</p><p><b>  {</b>&l

76、t;/p><p>  CString ip;//存儲IP</p><p>  BOOL on_line;//用于判斷次IP是否更新過,未更新則從單向鏈表中刪除</p><p>  USERINFO *next;//下一個(gè)存儲單元的地址,最后一個(gè)為NULL</p><p><b>  };</b><

77、;/p><p>  注:用于構(gòu)建服務(wù)器端的在線用戶單向鏈表。</p><p> ?。?)從服務(wù)器端發(fā)送到客戶端的在線用戶列表信息結(jié)構(gòu):</p><p> ?。?)傳輸?shù)骄€程的信息結(jié)構(gòu)體:</p><p><b>  客戶端:</b></p><p>  struct RECVPARAM </p&

78、gt;<p><b>  {</b></p><p>  SOCKET sock;//存儲接口套接字</p><p>  HWND hwnd;//存儲窗口句柄</p><p><b>  };</b></p><p><b>  服務(wù)器端:</b>&

79、lt;/p><p>  struct RECVPARAM</p><p><b>  {</b></p><p>  SOCKET sock;//存儲接口套接字</p><p>  HWND hwnd;//存儲窗口句柄</p><p>  BOOL endtread;//存

80、儲用于判斷是否退出線程循環(huán)</p><p>  USERINFO *userhead;//存儲在線用戶單向鏈表的頭指針</p><p><b>  };</b></p><p>  注:線程函數(shù)為靜態(tài)函數(shù),無法調(diào)用成員變量和成員函數(shù),所以需要將需要的數(shù)據(jù)傳送進(jìn)去。</p><p>  4.4 用戶界面設(shè)計(jì)</

81、p><p>  在能夠完全滿足軟件所需功能,設(shè)計(jì)界面要清爽、操作要簡單易懂的基本原則下,本軟件的界面設(shè)計(jì)如下:</p><p>  4.4.1 服務(wù)器端顯示界面:</p><p>  圖4-3服務(wù)器端界面圖</p><p>  4.4.2 客戶端顯示界面:</p><p>  圖4-4 客戶端顯示界面</p&g

82、t;<p>  5 詳細(xì)設(shè)計(jì)及編碼實(shí)現(xiàn)</p><p>  5.1 主框架及用戶界面模塊詳細(xì)設(shè)計(jì)</p><p>  主框架模塊由兩個(gè)類構(gòu)成:CserverDlg類和CserverApp類。類結(jié)構(gòu)如下:</p><p>  圖5-1 服務(wù)器端主框架模塊圖</p><p>  其中前面為紅色方塊的為類成員函數(shù),淺藍(lán)色方塊的為類成員

83、數(shù)據(jù)。</p><p>  CserverApp類為應(yīng)用程序主框架類,它在后臺完成了一個(gè)基于MFC的應(yīng)用程序的所有基本的初始化工作,如果用戶需要在程序的初始化時(shí)加入一些自定義的操作,只需在其中的InitInstance()函數(shù)中加入就可以了。在本程序中,只需要將WIN SOCKETS的網(wǎng)絡(luò)初始化工作完成。代碼為:</p><p>  if (!AfxSocketInit())</p&

84、gt;<p><b>  {</b></p><p>  AfxMessageBox(IDP_SOCKETS_INIT_FAILED);</p><p>  return FALSE;</p><p><b>  }</b></p><p>  在每一個(gè)基于MFC的WIN32程序中,它

85、都是通過一個(gè)由全局對象啟動整個(gè)初始化過程的機(jī)制,因?yàn)楦鶕?jù)C++的設(shè)計(jì),一個(gè)全局對象的生成即其構(gòu)造函數(shù)的調(diào)用要先于程序的入口函數(shù)。所以,在這個(gè)對象的構(gòu)造函數(shù)中可以做很多準(zhǔn)備工作,這個(gè)對象就是程序主框架類的對象,具體到本程序中,即是上面講到的CserverDlg類。</p><p>  服務(wù)端線程的具體作就是首先創(chuàng)建一個(gè)SOCKETS,然后將該套接字綁定到本地主機(jī)的某一個(gè)固定的端口上,在本程序中選擇了3127端口。接

86、著將該套接字設(shè)置為異步非阻塞模式,并為它注冊各種網(wǎng)絡(luò)異步事件,最后開始監(jiān)聽。</p><p>  5.2 網(wǎng)絡(luò)掃描模塊詳細(xì)設(shè)</p><p>  圖5-2網(wǎng)絡(luò)掃描示意圖</p><p>  5.3 信息發(fā)送模塊詳細(xì)設(shè)計(jì)</p><p>  圖5-3 信息發(fā)送模塊流程圖 </p><p>  5.4 信息接收模塊詳細(xì)設(shè)計(jì)

87、</p><p>  圖5-4 信息接收模塊流程圖</p><p>  以上即各個(gè)模塊的詳細(xì)設(shè)計(jì)的主要實(shí)現(xiàn)過程。</p><p><b>  6 測 試</b></p><p>  用二臺機(jī)器通過集線器構(gòu)成一個(gè)局域網(wǎng),進(jìn)行正確的網(wǎng)絡(luò)配置,三臺機(jī)器上都安裝了WINDOWS操作系統(tǒng),經(jīng)過測試可正常運(yùn)行。</p>

88、<p><b>  結(jié) 論</b></p><p>  在當(dāng)今電腦網(wǎng)絡(luò)密布的世界當(dāng)中,一個(gè)簡單高效的局域網(wǎng)通信工具是如此的具有實(shí)用性,所以我們應(yīng)當(dāng)重視對它的相關(guān)研究與開發(fā)。在這次的畢業(yè)設(shè)計(jì)中,我應(yīng)用了VC++6.0開發(fā)工具在WINDOWS平臺上開發(fā)了一個(gè)基于WINDOWS平臺的局域網(wǎng)通信工具,在這一重要的領(lǐng)域進(jìn)行了相關(guān)的實(shí)踐,不管是對我的研究能力,還是實(shí)際動手能力,還是資料查閱

89、能力,都起了相當(dāng)大的益處。通過此次畢業(yè)設(shè)計(jì),我了解了進(jìn)程間通訊的兩種基本方法共享內(nèi)存和消息,在實(shí)例中具體體會到了共享內(nèi)存和消息的使用方法。所以,我決定認(rèn)真總結(jié)這次畢業(yè)設(shè)計(jì)的經(jīng)驗(yàn),以及學(xué)習(xí)到的知識,來更加的充實(shí)自己的頭腦和完善自己的知識結(jié)構(gòu)。</p><p>  另外,我也在這次設(shè)計(jì)中看到了自己的許多不足之處,由于初次接觸到語言類問題,很多步驟都是自己臨時(shí)學(xué)習(xí),大大影響了系統(tǒng)的開發(fā)進(jìn)度。</p>&l

90、t;p>  既然設(shè)計(jì)已經(jīng)完成,論文也寫到結(jié)論的地方,我希望自己能以一個(gè)良好的心態(tài)順利畢業(yè),走向社會。</p><p><b>  致 謝</b></p><p>  首先要感謝老師,是她在整個(gè)畢業(yè)設(shè)計(jì)過程中給我提供了畢業(yè)設(shè)計(jì)所需要的資料,幫助解答畢業(yè)設(shè)計(jì)中遇到的問題。其次要感謝實(shí)驗(yàn)室的老師們,是他們畢業(yè)設(shè)計(jì)中為我準(zhǔn)備好了畢業(yè)設(shè)計(jì)的工作環(huán)境,在翻譯版圖的整個(gè)過程中

91、給予了我指導(dǎo),再次是要感謝和我一起做畢業(yè)設(shè)計(jì)的同學(xué)們,正是有了他們,我們才在遇到問題時(shí),相互鼓勵(lì),最終解決了問題,圓滿地完成了畢業(yè)設(shè)計(jì)的各項(xiàng)工作。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1]侯俊杰.深入淺出MFC[M].華中科技大學(xué)出版社.2001</p><p>  [2]孫鑫.VC++深入詳解[M].電子工業(yè)出

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論