【正文】
程序的源代碼;封裝了Windows的API函數(shù)、USER、KERNEL、GDI函數(shù),簡(jiǎn)化了編程時(shí)創(chuàng)建、維護(hù)窗口的許多復(fù)雜的工作。Visual C++是功能最為強(qiáng)大可視化開發(fā)工具,它不僅支持傳統(tǒng)的軟件開發(fā)方法,更重要的是它能支持面向?qū)ο?、可視化的開發(fā)風(fēng)格。從20世紀(jì)70年代第一次提出面向?qū)ο蟮母拍铋_始,到現(xiàn)在面向?qū)ο蠹夹g(shù)發(fā)展成為一種比較成熟的編程思想,通過面向?qū)ο蠹夹g(shù),可以將現(xiàn)實(shí)世界直接影射到對(duì)象空間,從而為系統(tǒng)的設(shè)計(jì)和開發(fā)帶來革命性的影響。開發(fā)平臺(tái):Microsoft Visual C++ 軟件環(huán)境 網(wǎng)絡(luò):局域網(wǎng)開發(fā)該系統(tǒng)應(yīng)盡可能采用高檔的硬件。處理器:Intel Pentium PIII或更高處理器 2 系統(tǒng)開發(fā)環(huán)境和關(guān)鍵技術(shù) 開發(fā)環(huán)境我所設(shè)計(jì)的是一個(gè)面向中小型機(jī)構(gòu)內(nèi)部通信需求的局域網(wǎng)即時(shí)信息軟件,要在短時(shí)間內(nèi)開發(fā)出來并且要滿足客戶要求,無論是硬件還是軟件都要選擇合適,要求如下:開發(fā)設(shè)備應(yīng)該完備;開發(fā)機(jī)器的性能必須穩(wěn)定;操作系統(tǒng)的選擇應(yīng)該適當(dāng);開發(fā)出的程序可以在盡可能多的平臺(tái)上運(yùn)行;要求運(yùn)行機(jī)配置盡可能低檔。第 5 章介紹系統(tǒng)測(cè)試。對(duì)系統(tǒng)的結(jié)構(gòu)進(jìn)行設(shè)計(jì),設(shè)計(jì)共享數(shù)據(jù)結(jié)構(gòu)。第 3 章是系統(tǒng)分析與設(shè)計(jì)。第1章對(duì)本次課題的背景及意義、課題現(xiàn)狀、課題內(nèi)容與目標(biāo)進(jìn)行了深入的闡述。 系統(tǒng)綜述現(xiàn)在,多渠道的信息源、網(wǎng)絡(luò)化的數(shù)據(jù)分布、快捷醫(yī)用的交互操作、智能化的分析決策等特點(diǎn)越來越成為衡量有兩聊天軟件的關(guān)鍵,因此,本人開發(fā)一個(gè)局域網(wǎng)聊天軟件,該聊天軟件是基于C++語言運(yùn)行于VC平臺(tái)上,利用的技術(shù)主要是Socket通信,使用配置文件作為數(shù)據(jù)管理。 系統(tǒng)內(nèi)容與目標(biāo)本課題主要研究的是局域網(wǎng)聊天軟件,此聊天軟件分為服務(wù)器程序和客戶端程序,本課題的目標(biāo)是能實(shí)現(xiàn)用戶在客戶端與服務(wù)器端傳遞文字信息。而也具有一個(gè)相當(dāng)方便的屏幕截圖功能,另外就是,所有上述軟件都實(shí)現(xiàn)了網(wǎng)絡(luò)即時(shí)的視頻,語音聊天功能。 系統(tǒng)現(xiàn)狀 基于局域網(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 Messenger, Yahoo。它具有信息收發(fā)速度快,保密性好,占用網(wǎng)絡(luò)帶寬資源低,占用服務(wù)器吞吐能力低,易于編程實(shí)現(xiàn)等優(yōu)點(diǎn)。它的實(shí)現(xiàn)無需對(duì)企業(yè)原有的局域網(wǎng)硬件進(jìn)行任何改動(dòng),具有實(shí)現(xiàn)成本低廉的優(yōu)點(diǎn),它的使用能有效地降低局域網(wǎng)通信負(fù)荷,提高局域網(wǎng)的使用效率,可以很好地解決企業(yè)內(nèi)部局域網(wǎng)的各種通信需求。 本系統(tǒng)采用基于Socket的局域網(wǎng)通信工具的設(shè)計(jì)與實(shí)現(xiàn)的方法。然而,隨著企業(yè)規(guī)模的擴(kuò)大,業(yè)務(wù)量的增加,企業(yè)內(nèi)部的信息越來越私密,企業(yè)只希望員工通過內(nèi)部局域網(wǎng)進(jìn)行溝通與交流,避免企業(yè)內(nèi)部機(jī)密通過Internet泄露到外部。出于高效、快速地處理各種事務(wù)的目的,越來越多的企業(yè)在其內(nèi)部使用局域網(wǎng)來進(jìn)行工作。關(guān)鍵字:局域網(wǎng)、即時(shí)通信、套接字、異步模式An instant messaging chat system based of LANAbstractAlong with the highspeed development of the puter science and Internet, chatting on line has been an important method in our munication. Comparing with Email and telephone, the chatline service is more realtime and effective.This thesis proposes a solution of a LAN chatting software based on C++ language, which is operated on the VC platform. This chatting software includes two modules: the server and the client, which can municate with each other. The server module mainly pletes the sever device’s configuration. The client module mainly pletes the users’ login, registration, instant messaging and so on. The software used model of nonblocking asynchronous socket , And to achieve the object and MFC series documents the preservation of the object data. This software can help the pany to build their own chatting system in the local area network, and it also can avoid the staff of the pany disclosing the insider information by using the other software such as , but this software has only pleted the basic function as a chatting system, so it need much more improvement. 該軟件能夠幫助企業(yè)在局域網(wǎng)內(nèi)搭建起自己的聊天系統(tǒng),避免企業(yè)內(nèi)部員工使用類似等軟件泄露內(nèi)部信息,但是該軟件只實(shí)現(xiàn)了聊天的基本功能,還有很多不足之處需要改進(jìn)。服務(wù)器端模塊主要實(shí)現(xiàn)了服務(wù)器的配置和數(shù)據(jù)的傳遞;客戶端模塊主要實(shí)現(xiàn)了用戶注冊(cè)、登錄、文字聊天等功能。本論文提出一個(gè)運(yùn)行于VC平臺(tái)上的局域網(wǎng)聊天軟件的解決方案。本科畢業(yè)設(shè)計(jì)(論文)題 目 基于局域網(wǎng)的即時(shí)通訊聊天室系統(tǒng)設(shè)計(jì) 部 系 地方生部 專 業(yè) 電子信息工程 學(xué) 員 王鋒 指導(dǎo)教員 朱四華 中國人民解放軍海軍航空工程學(xué)院2010 年 5 月基于局域網(wǎng)的即時(shí)通訊聊天系統(tǒng)的設(shè)計(jì)摘 要隨著計(jì)算機(jī)科學(xué)和Internet 的飛速發(fā)展, 網(wǎng)上聊天已成為人們相互交流的一種方式, 與Email、電話相比, 聊天服務(wù)更具有實(shí)時(shí)性和有效性。該聊天軟件包括服務(wù)器端和客戶端兩個(gè)模塊,客戶端通過服務(wù)器端進(jìn)行通信。該軟件采用異步套接字的非阻塞模式,并實(shí)現(xiàn)對(duì)象的序列化和MFC文件對(duì)象實(shí)現(xiàn)數(shù)據(jù)的保存。Key words:LAN 、Instant messaging、Socket、asynchronous modleIII目 錄摘 要 IAbstract II1 概 述 1 系統(tǒng)現(xiàn)狀 1 系統(tǒng)內(nèi)容與目標(biāo) 2 系統(tǒng)綜述 22 系統(tǒng)開發(fā)環(huán)境和關(guān)鍵技術(shù) 3 開發(fā)環(huán)境 3 關(guān)鍵技術(shù) 3 .Visual C++和面向?qū)ο蟪绦蛟O(shè)計(jì) 3 M F C 4 WINDOWS SOCKETS網(wǎng)絡(luò)編程接口 4 WSAAsyncSelect模型開發(fā) 5 TCP/IP協(xié)議、TCP協(xié)議 6 Client/Server結(jié)構(gòu)(客戶機(jī)/服務(wù)器模式) 83 系統(tǒng)分析與設(shè)計(jì) 9 系統(tǒng)分析 9 系統(tǒng)需求 9 需求分析 10 系統(tǒng)設(shè)計(jì) 11 設(shè)計(jì)原則 11 工作流程 12 功能設(shè)計(jì) 13 共享數(shù)據(jù)類設(shè)計(jì) 134 系統(tǒng)實(shí)現(xiàn) 16 服務(wù)器端設(shè)計(jì)實(shí)現(xiàn) 16 服務(wù)器端靜態(tài)類圖 16 服務(wù)器主要類介紹 16 服務(wù)器端主要過程介紹 19 客戶端設(shè)計(jì)實(shí)現(xiàn) 25 客戶端靜態(tài)類圖 25 客戶端主要類介紹 25 27 32 測(cè)試意義 32 32 32 測(cè)試用例 33總結(jié)與展望 34參考文獻(xiàn) 36致 謝 371 概 述近年來,隨著全球信息化進(jìn)程的不斷發(fā)展,網(wǎng)絡(luò)也在飛速發(fā)展。在內(nèi)部局域網(wǎng)的幫助下,企業(yè)得以簡(jiǎn)化信息流程,提高信息交換的速度,從而提高工作效率。為了解決上述矛盾,人們提出了開發(fā)局域網(wǎng)聊天軟件的構(gòu)想,通過局域網(wǎng)聊天軟件,企業(yè)員工可以隨時(shí)的進(jìn)行即時(shí)消息傳遞,召開網(wǎng)絡(luò)會(huì)議等,有利于提高工作消息效率,同時(shí)又保護(hù)了企業(yè)內(nèi)部信息的安全性?;赟ocket的局域網(wǎng)通信軟件可以為企業(yè)原有的局域網(wǎng)提供一種良好,安全,快速的通信機(jī)制。 基于Socket的局域網(wǎng)聊天工具很好地詮釋了Socket通信的原理,并且在企業(yè)內(nèi)部通信、教學(xué)、討論等應(yīng)用中都具有一定的實(shí)用價(jià)值。 基于Socket的局域網(wǎng)通信軟件應(yīng)用范圍廣闊,不但可以處理傳統(tǒng)的通信需求,而且也能擴(kuò)展以適應(yīng)新型的網(wǎng)絡(luò)應(yīng)用,如網(wǎng)絡(luò)教育,數(shù)據(jù)影音傳輸?shù)?,擁有廣泛的應(yīng)用前景。除了這些國外開發(fā)的產(chǎn)品,還有國產(chǎn)的有名的,新浪UC,LAVALAVA等,這些工具統(tǒng)統(tǒng)都實(shí)現(xiàn)了廣域網(wǎng)上的即時(shí)通信,盡管都是即時(shí)通信,實(shí)現(xiàn)了即時(shí)聊天,以及文件傳輸?shù)闹饕δ?,但是也各有各的特色,比如ICQ的巨大客戶群,MSN的個(gè)性化表情,YAHOO通的易操作性等。這些軟件,在使用方面各有特色,在實(shí)現(xiàn)方面也各有所長,但基于這些產(chǎn)品正在商業(yè)運(yùn)營階段,其實(shí)現(xiàn)方式屬于商業(yè)機(jī)密,具體細(xì)節(jié)不一定得知,但是它在大的方面無非就是各種利用各種平臺(tái)上的網(wǎng)絡(luò)通信接口,建構(gòu)基于下層TCP/IP,或者UDP協(xié)議的軟件產(chǎn)品。主要研究開發(fā)內(nèi)容是:熟悉C++和VC的操作,搭配系統(tǒng)開發(fā)平臺(tái),探索在此開發(fā)平臺(tái)下,利用socket編程技術(shù)、多線程開發(fā)技術(shù)、TCP、UDP協(xié)議等進(jìn)行局域網(wǎng)聊天軟件的實(shí)際開發(fā)。為實(shí)現(xiàn)和方便客戶端間通信,在客戶端進(jìn)行了人性化的界面設(shè)計(jì),用戶可以注冊(cè)號(hào)碼,登陸界面,具有發(fā)送離線消息功能。第 2 章介紹了系統(tǒng)的開發(fā)環(huán)境和關(guān)鍵技術(shù),例如Socket編程技術(shù),非阻塞開發(fā)模式等等。將對(duì)系統(tǒng)進(jìn)行需求分析,對(duì)組成系統(tǒng)的功能模塊進(jìn)行劃分,對(duì)每個(gè)模塊將要實(shí)現(xiàn)的功能進(jìn)行闡述和說明。第4章是系統(tǒng)實(shí)現(xiàn),分別介紹了服務(wù)器端和客戶端每個(gè)功能的執(zhí)行過程,畫出主要模塊的流程圖。最后,對(duì)本設(shè)計(jì)進(jìn)行歸納總結(jié),全面闡述本次設(shè)計(jì)中的體會(huì)。對(duì)此,我們選擇的硬件環(huán)境和軟件環(huán)境如下: 硬件環(huán)境 內(nèi)存:256MB或更高 因此,在應(yīng)用時(shí)應(yīng)采用更好的配置。操作系統(tǒng):Windows 2000 /Windows XP / Windows 2003 開發(fā)語言:C++ 關(guān)鍵技術(shù) .Visual C++和面向?qū)ο蟪绦蛟O(shè)計(jì)VC基于C,C++語言,主要由是MFC組成,是與系統(tǒng)聯(lián)系非常緊密的編程工具,它兼有高級(jí),和低級(jí)語言的雙重性,功能強(qiáng)大,靈活,執(zhí)行效率高,幾乎可說VC在 Windows平臺(tái)無所不能。Visual C++是一個(gè)典型的面向?qū)ο蟪绦虻脑O(shè)計(jì)語言,它也是目前為止功能最強(qiáng)、最受歡迎、應(yīng)用最廣泛、高效的Windows應(yīng)用程序開發(fā)工具,它是在C 語言基礎(chǔ)之上發(fā)展起來的,是C語言的超集。因此Visual C++又稱作是一個(gè)集成開發(fā)工具,它提供了軟件代碼自動(dòng)生成和可視化的資源編輯功能。 M F CMFC,微軟基礎(chǔ)類(Microsoft Foundation Classes),實(shí)際上是微軟提供的,用于在C++環(huán)境下編寫應(yīng)用程序的一個(gè)框架和引擎,VC++是WinDOS下開發(fā)人員使用的專業(yè)C++ SDK(SDK,Standard SoftWare Develop Kit,專業(yè)軟件開發(fā)平臺(tái)),MFC 就是掛在它之上的一個(gè)輔助軟件開發(fā)包,MFC作為與VC++血肉相連的部分(注意C++和VC++的區(qū)別:C++是一種程序設(shè)計(jì)語言,是一種大家都承認(rèn)的 軟件編制的通用規(guī)范,而VC++只是一個(gè)編譯器,或者說是一種編譯器+源程序編輯器的IDE,WS,PlatForm,這跟Pascal和Delphi的關(guān)系一個(gè)道理,Pascal是Delphi的語言基礎(chǔ),Delphi使用Pascal規(guī)范來進(jìn)行Win下應(yīng)用程序的開發(fā)和編譯,卻不同于Basic語言和VB的 關(guān)系,Basic語言在VB開發(fā)出來被應(yīng)用的年代已經(jīng)成了Basic語言的新規(guī)范,VB新加的Basic語言要素,如面向?qū)ο蟪绦蛟O(shè)計(jì)的要素,是一種性質(zhì)上的飛躍,使VB既是一個(gè)IDE,又成長成一個(gè)新的程序設(shè)計(jì)語言),MFC同BC++集成的VCL一樣是一個(gè)非外掛式的軟件包,類庫,只不過MFC類是微 軟為VC++專配的.. WINDOWS SOCKETS網(wǎng)絡(luò)編程接口選定WINDOWS平臺(tái)開發(fā)網(wǎng)絡(luò)通信程序,可以選擇WINDOWS的SOCKETS編程接口,Windows Sockets是一套開放的、支持多種協(xié)議的Windows下的網(wǎng)絡(luò)編程接口。Windows sockets無疑是我們進(jìn)行網(wǎng)絡(luò)編程的利器。應(yīng)用程序調(diào)用Windows Sockets的API實(shí)現(xiàn)相互之間的通訊。: Sockets實(shí)現(xiàn)通訊工作的各層關(guān)系圖 WSAAsyncSelect模型開發(fā)WSAAsyncSelect()調(diào)用允許應(yīng)用程序程序注冊(cè)一個(gè)或多個(gè)感興趣的網(wǎng)絡(luò)事件。在select()或非阻塞I/O例程(例如send()和recv())已經(jīng)被調(diào)用或?qū)⒁徽{(diào)用的情況下都可以使用WSAAsyncSelect()調(diào)用。那么在你聲明的感興趣的網(wǎng)絡(luò)事件發(fā)生時(shí),對(duì)應(yīng)的窗口將收到一個(gè)基于消息的通知。 IP層接收由更低層(網(wǎng)絡(luò)接口層例如以太網(wǎng)設(shè)備驅(qū)動(dòng)程序)發(fā)來的數(shù)據(jù)包,并把該數(shù)據(jù)包發(fā)送到更高層TCP或UDP層;相反,IP層也把從TCP或UDP層接收來的數(shù)據(jù)包傳送到更低層。IP數(shù)據(jù)包中含有發(fā)送它的主機(jī)的地址(源地址)和接收它的主機(jī)的地址(目的地址)。TCP將包排序并進(jìn)行錯(cuò)誤檢查,同時(shí)實(shí)現(xiàn)虛電路間的連接。UDP與TCP位于同