網(wǎng)絡(luò)編程課程設(shè)計---網(wǎng)絡(luò)聊天室_第1頁
已閱讀1頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目 錄</b></p><p>  摘要……………………………………………………………………………………………………1</p><p>  關(guān)鍵詞…………………………………………………………………………………………………1</p><p>  引言………………………………………………………………………………………

2、……………1</p><p>  1 系統(tǒng)開發(fā)的意義及需求分析………………………………………………………………………1</p><p>  1.1課題來源…………………………………………………………………………………………1</p><p>  1.2需求分析…………………………………………………………………………………………1</p><p&g

3、t;  2.1 IP/TCP協(xié)議常識 …………………………………………………………………………………3</p><p>  2.1.1 TCP/IP協(xié)議的特點……………………………………………………………………………3</p><p>  2.1.2 TCP/IP協(xié)議數(shù)據(jù)的傳輸過程…………………………………………………………………3</p><p>  2.1.3端

4、口號…………………………………………………………………………………………3</p><p>  2.2 Socket的簡介……………………………………………………………………………………3</p><p>  2.2.1 Socket程序的工作過程………………………………………………………………………4</p><p>  2.2.2三次握手協(xié)議…………………………

5、………………………………………………………4</p><p>  3系統(tǒng)開發(fā)和設(shè)計方案……………………………………………………………………………… 5</p><p>  3.1開發(fā)環(huán)境及工具…………………………………………………………………………………5</p><p>  3.2系統(tǒng)總體設(shè)計要點………………………………………………………………………………5<

6、;/p><p>  3.2.1實現(xiàn)思想………………………………………………………………………………………5</p><p>  3.2.3多用戶實時工作原理圖………………………………………………………………………6</p><p>  3.3系統(tǒng)功能模塊劃分及設(shè)計原理…………………………………………………………………7</p><p>  4系統(tǒng)

7、實現(xiàn)與最終效果………………………………………………………………………………10</p><p>  4.1系統(tǒng)工作的過程…………………………………………………………………………………10</p><p>  4.2 系統(tǒng)使用方法……………………………………………………………………………………10</p><p>  4.3 各功能模塊運行效果………………………………

8、……………………………………………10</p><p>  4.4拓展功能…………………………………………………………………………………………13</p><p>  4.5模塊測試…………………………………………………………………………………………15</p><p>  5成員分工……………………………………………………………………………………………15<

9、/p><p><b>  網(wǎng)絡(luò)聊天室</b></p><p>  摘要:在網(wǎng)絡(luò)飛速發(fā)展的今天,互聯(lián)網(wǎng)成為人們快速獲取、發(fā)布和傳遞信息的重要渠道,它在人們政治、經(jīng)濟、生活等各個方面發(fā)揮著重要的作用?;ヂ?lián)網(wǎng)上存在大量的信息所以信息交換也顯得尤為重要。人們一直在尋找一種方便、低廉的交流信息的工具,因此網(wǎng)上聊天便成為人們的首選。本論文通過VC的Socket實現(xiàn)了一個局域網(wǎng)的聊天室

10、——基于VC的聊天室的設(shè)計與實現(xiàn)。本聊天室服務(wù)器包括顯示在線用戶、日志管理、聊天信息管理、發(fā)送系統(tǒng)信息等功能??蛻舳税ǖ卿洝⒆?、公聊、私聊傳送文本文件等功能。</p><p>  關(guān)鍵詞:局域網(wǎng);聊天室;VC;套接字</p><p>  引言: 隨著互聯(lián)網(wǎng)逐步普及,人們的生活和工作也越來越離不開信息網(wǎng)絡(luò)的支持,將會有越來越多的人利用網(wǎng)上資源,享受不斷發(fā)展和完善的網(wǎng)絡(luò)服務(wù),以此來提高工作

11、效率和水平。隨著我國經(jīng)濟發(fā)展和網(wǎng)絡(luò)的普及,網(wǎng)絡(luò)技術(shù)也越來越多地被應(yīng)用于日常工作之中。在程序設(shè)計領(lǐng)域,面向?qū)ο蟮木幊碳夹g(shù)正在逐步代替面向過程的程序設(shè)計技術(shù),成為計算機應(yīng)用設(shè)計開發(fā)的主流,尤其在網(wǎng)絡(luò)技術(shù)開發(fā)中,面向?qū)ο蟮腣C語言編程和相關(guān)的VC技術(shù)正在以前所未有的速度發(fā)展。網(wǎng)上購物、網(wǎng)上銀行、遠程教學(xué)、網(wǎng)絡(luò)聊天、網(wǎng)絡(luò)游戲等都開始使用VC技術(shù)。而且VC使平臺無關(guān)性的思想成為現(xiàn)實,獨立的VC程序可以被編譯為與平臺無關(guān)的字節(jié)碼,這種字節(jié)碼可以運行

12、在任何擁有VC解釋器的機器上。 真正降低了企業(yè)成品和程序員的負擔。對于人與人之間通過網(wǎng)絡(luò)的溝通和交流,聊天室是人們最常見、最直接的交流的方式。本聊天系統(tǒng)以聊天交流為主,為廣大用戶提供一個借助網(wǎng)絡(luò)進行人際交往的平臺,也是網(wǎng)絡(luò)與現(xiàn)實最貼近的實用型應(yīng)用。本文所介紹的網(wǎng)絡(luò)聊天系統(tǒng)是基于開放的VC應(yīng)用程序開發(fā)設(shè)計的,其主要特性是能動態(tài)、實時的完成信息的傳遞,且具有高效的交互性,有效的處理客戶請求且具有脫離數(shù)據(jù)庫技術(shù)方</p><

13、;p>  1系統(tǒng)開發(fā)的意義及需求分析</p><p><b>  1.1課題來源</b></p><p>  根據(jù)當前網(wǎng)絡(luò)的需求,網(wǎng)絡(luò)聊天越來越受到各種網(wǎng)民所青睞。因此開發(fā)網(wǎng)絡(luò)聊天是相當有必要,而且在網(wǎng)站內(nèi)增加聊天功能,它不僅可以提高網(wǎng)站的訪問量,同時可以留著訪客,更重要的是讓訪客透過聊天室實時的互相交流。而本人也學(xué)習(xí)過VC語言,對網(wǎng)絡(luò)編程也較有興趣,為了更好的

14、考驗自己對VC語言的掌握程度,本人就決定以《基于VC的網(wǎng)絡(luò)聊天室》為畢業(yè)設(shè)計,希望通過這一次能進一步提高本人的網(wǎng)絡(luò)開發(fā)編程的能力。</p><p><b>  1.2需求分析</b></p><p>  聊天系統(tǒng)不外乎兩個方面,服務(wù)器端和客戶端。簡單分析一下兩個方面所要完成的任務(wù),對設(shè)計這個程序來說,等于完成了一半。首先來看一下服務(wù)器。</p><

15、p><b>  服務(wù)器端的任務(wù):</b></p><p>  1、服務(wù)器端應(yīng)當建立一個ServerSocket,并且不斷進行偵聽是否有客戶端連接或者斷開連接。2、服務(wù)器端應(yīng)當是一個信息發(fā)送中心,所有客戶端的信息都傳到服務(wù)器端,由服務(wù)器端根據(jù)要求分發(fā)信息。</p><p>  以上就是服務(wù)器端最主要的兩個任務(wù)。不難看出,服務(wù)器端的任務(wù)并不復(fù)雜。</p>

16、;<p>  客戶端應(yīng)該完成的工作包括:</p><p>  1、與服務(wù)器端建立通信通道,向服務(wù)器端發(fā)送信息。2、接收來自服務(wù)器的信息。</p><p>  相對服務(wù)器而言,客戶端的任務(wù)更加簡單,有了以上的簡單分析,可以知道,解決上述四個問題,即完成了該聊天系統(tǒng)的核心。</p><p><b>  2.系統(tǒng)開發(fā)技術(shù)</b><

17、;/p><p>  2.1 IP/TCP協(xié)議常識</p><p>  2.1.1 IP、TCP協(xié)議的特點:</p><p>  TCP/IP(Transmission Control Protocol/Internet Protocol)是傳輸控制協(xié)議/網(wǎng)際協(xié)議的縮寫, TCP/IP是當今網(wǎng)絡(luò)互聯(lián)的核心協(xié)議。TCP/IP協(xié)議的體系結(jié)構(gòu)共有四個層次,即應(yīng)用層、傳輸層、網(wǎng)絡(luò)

18、互聯(lián)層和網(wǎng)絡(luò)接口層。</p><p>  IP協(xié)議的作用:第一,它是網(wǎng)絡(luò)層的協(xié)議,提供互聯(lián)網(wǎng)上數(shù)據(jù)傳輸?shù)慕y(tǒng)一格式。第二,提供不可靠的無連接的服務(wù)。第三,定義了互聯(lián)網(wǎng)上的傳輸數(shù)據(jù)的基本單元,提供了供路由選擇的信息,沒有差錯校驗和處理的機制。</p><p>  TCP協(xié)議的功能:差錯控制——可靠性、面向連接、分段(Segment)、端口號。TCP是傳輸控制協(xié)議,是面向連接的提供了一種可靠的傳

19、輸服務(wù),它用三次握手和滑動窗口機制來保證傳輸?shù)目煽啃裕斑M行流量控制。</p><p>  2.1.2 TCP/IP協(xié)議進行傳輸數(shù)據(jù)傳輸?shù)倪^程:</p><p>  應(yīng)用程序為了傳輸數(shù)據(jù)會調(diào)用TCP,將數(shù)據(jù)和對應(yīng)的參數(shù)傳給TCP,將TCP數(shù)據(jù)包封裝在IP包內(nèi),通過網(wǎng)絡(luò)送給目的TCP。接收方TCP在接收到數(shù)據(jù)后通知上層應(yīng)用程序,TCP將保證接收數(shù)據(jù)的正確性。在實現(xiàn)TCP的主機上,TCP可以被

20、看成是一個模塊,和文件系統(tǒng)區(qū)別不大,TCP 也可以調(diào)用一些操作系統(tǒng)的功能,TCP不直接和網(wǎng)絡(luò)打交道,控制網(wǎng)絡(luò)的任務(wù)由專門的設(shè)備驅(qū)動模塊完成。TCP只是調(diào)用IP接口,向TCP提供所有TCP需要的服務(wù)[2]。</p><p>  2.1.3 端口號:</p><p>  有的時候,一個ip地址不能完整的標識一臺服務(wù)器,這是因為一臺物理性的計算機同時運行著多個應(yīng)用程序,這就需要我們來區(qū)別同一臺機

21、子上的不同的服務(wù),所以就在傳輸層和應(yīng)用層上設(shè)置接口,就是端口。端口實際是一個16位長的地址,他的范圍是0~65535之間,其中0~1023是熟知端口,主要是給提供服務(wù)的應(yīng)用程序使用,這些端口是所有應(yīng)用進程都知道的,1024~65535為一般端口,也稱動態(tài)端口、連接端口,用來隨時分配要求通信的個客戶端應(yīng)用程序。在數(shù)據(jù)傳輸過程中,各種服務(wù)器不斷的檢測分配給他的端口,一邊發(fā)現(xiàn)要求和他通信的客戶端[3]。</p><p>

22、;  2.2 Socket的簡介:</p><p>  Socket,簡稱套接字,用于實現(xiàn)網(wǎng)絡(luò)上客戶和服務(wù)器之間的連接。也就是說網(wǎng)絡(luò)上兩個或兩個以上雙工方式通信的進程之間總有一個連接,這個連接的端點成為套接字,套接字是在比較低的層次上通信的。</p><p>  具體的說:一個服務(wù)器應(yīng)用程序一般偵聽一個特定的端口等待客戶端的連接請求,當一個連接請求到達時,客戶端和服武器端建立一個通信連接,

23、在連接過程中,客戶端被分配一個本地端口與一個Socket建立連接,客戶端通過寫Socket來通知服務(wù)器,以讀Socket中的信息,類似的服務(wù)器也獲得一個本地端口,它需要一個新的端口號來偵聽原始端口上的其他連接請求。服務(wù)器也通過它的本地端口連接一個Socket,通過讀寫和客戶端通信[8]。</p><p>  2.2.1 Socket程序的工作過程:</p><p>  1.建立Socket

24、連接:在通信開始之前由通信雙方確認身份,建立一條專用的虛擬連接道。</p><p>  2.數(shù)據(jù)通信:利用虛擬連接通道傳送數(shù)據(jù)信息進行通信。</p><p>  3.關(guān)閉:通信結(jié)束時,再將所建的虛擬連接拆除。</p><p><b>  具體如下:[12]</b></p><p>  圖1 Socket程序的工作過程&l

25、t;/p><p>  2.2.2 三次握手協(xié)議:</p><p>  第一次握手:原主機發(fā)送一個帶有本次連接的序號的請求的一個數(shù)據(jù)幀</p><p>  第二次握手:目的主機收到請求后,如果同意連接,則發(fā)回一個帶有一個本次連接序號和源端機連接序列號的確認。</p><p>  第三此握手:源端機收到含有兩次初始序列號的應(yīng)答后,再向目的主機發(fā)送一個

26、帶有兩次連接的序列號的確認。</p><p>  具體過程如下:[4] </p><p><b>  圖2 三次握手協(xié)議</b></p><p>  3.系統(tǒng)分析與設(shè)計方案</p><p>  3.1開發(fā)環(huán)境及工具</p><p><b>  本系統(tǒng)所用的工具:</b><

27、;/p><p>  服務(wù)器端:(Windows平臺)首先應(yīng)有Microsoft Visual C++ 6.0</p><p>  客戶端:Windows平臺 首先應(yīng)有Microsoft Visual C++ 6.0 </p><p>  本系統(tǒng)運行所需用到的環(huán)境為:</p><p><b>  硬件配置 :</b></

28、p><p>  中央處理器(CPU) :P4 2.0G以上的處理器;</p><p>  硬 盤:40GB以上硬盤;</p><p>  內(nèi) 存:256以上的DDR內(nèi)存;</p><p>  顯 卡:128M以上顯存顯卡</p><p>  軟件配置:WINDOWS XP 版本等。</p><p&

29、gt;  3.2聊天系統(tǒng)的總體設(shè)計要點3.2.1實現(xiàn)思想[15]</p><p>  在局域網(wǎng)上的聊天程序一般都是以服務(wù)器提供服務(wù)端連接響應(yīng),使用者通過客戶端程序登錄到服務(wù)器,就可以與登錄在同一服務(wù)器上的用戶交談,這是一個面向連接的通信過程。因此,程序要在TCP/IP環(huán)境下,實現(xiàn)服務(wù)器端和客戶端兩部分程序。</p><p><b>  服務(wù)器端工作流程:</b>&l

30、t;/p><p>  服務(wù)器端通過系統(tǒng)調(diào)用創(chuàng)建一個ServerSocket與指定的本地端口綁定,就可以在端口進行偵聽。如果有客戶端連接請求,則創(chuàng)建一個Socket,將客戶端地址賦給這個Socket。然后登錄成功的客戶就可以在服務(wù)器上聊天了。</p><p><b>  客戶端工作流程:</b></p><p>  客戶端程序相對簡單,只需要建立一個

31、Socket與服務(wù)器端連接,成功后通過這個Socket來發(fā)送和接收數(shù)據(jù)就可以了。</p><p>  3.2.2 系統(tǒng)功能流圖:</p><p><b>  圖3 系統(tǒng)功能流圖</b></p><p><b>  功能流程說明如下:</b></p><p>  (1)啟動服務(wù)器程序,服務(wù)器端創(chuàng)建一個

32、ServerSocket對象,指定端口號。</p><p>  (2)ServerSocket對象等候客戶端的連接請求。</p><p>  (3)啟動客戶端程序,登錄用戶。如果未注冊,先注冊再登錄。登錄成功進入聊天室用戶界面。</p><p>  (4)客戶端創(chuàng)建一個Socket對象,指定主機地址和端口號,向服務(wù)器發(fā)送連接請求。</p><p&

33、gt;  (5)服務(wù)器端收到客戶端請求,建立一條TCP連接,再創(chuàng)建一個Socket對象與客戶端</p><p>  的Socket對象進行通信。</p><p>  (6)服務(wù)器端和客戶端分別建立字節(jié)輸入/輸出流,進行數(shù)據(jù)傳輸準備。</p><p>  (7)服務(wù)器端和客戶端通過各自的字節(jié)輸入流獲得對方發(fā)送過來的數(shù)據(jù),通過字節(jié)輸出</p><p&

34、gt;<b>  向?qū)Ψ桨l(fā)送數(shù)據(jù)。</b></p><p>  (8)一方?jīng)Q定結(jié)束通信,向?qū)Ψ桨l(fā)送結(jié)素信息,另一方收到結(jié)束信息后,雙方分別關(guān)閉各自的TCP連接。</p><p>  (9)對象停止等候客戶端連接請求。</p><p>  3.2.3 多用戶實時工作原理圖[5]</p><p>  圖4 多用戶實時工作原理

35、圖</p><p>  注:服務(wù)器的run()方法中采用了while(true)結(jié)構(gòu),不斷監(jiān)聽客戶端的請求,如收到請求,建立與當前請求的客戶端連接的套接字,從而與客戶端建立聯(lián)系。</p><p>  3.3系統(tǒng)的功能模塊劃分及設(shè)計原理</p><p>  當用戶聊天時,將當前用戶名、聊天對象、聊天內(nèi)容和是否私聊進行封裝并且序列化,然后與服務(wù)器建立Socket連接,再

36、用對象輸出流包裝Socket的輸出流將聊天信息對象發(fā)送給服務(wù)器端。當用戶發(fā)送聊天信息時,服務(wù)端將會收到客戶端用Socket傳輸過來的聊天信息對象,然后將其強制轉(zhuǎn)換為Chat對象,并將本次用戶的聊天信息對象添加到聊天對象集Message中,以供所有聊天用戶訪問。接收用戶的聊天信息是由多線程技術(shù)實現(xiàn)的,因為客戶端必須時時關(guān)注更新服務(wù)器上是否有最新消息,在本程序中設(shè)定的是1秒刷新服務(wù)器一次,如果間隔時間太短將會增加客戶端與服務(wù)器端的通信負擔,

37、而間隔時間長就會讓人感覺沒有時效性,所以經(jīng)過權(quán)衡后認為1秒最佳,因為每個用戶都不可能在1秒內(nèi)連續(xù)發(fā)送信息。當每次用戶接收到聊天信息后將會開始分析聊天信息然后將適合自己的信息人性化顯示在聊天信息界面上。</p><p><b>  1、服務(wù)器程序模塊</b></p><p>  服務(wù)器與客戶間通過套接口Socket(TCP)連接。服務(wù)器采用多線程以滿足多用戶的請求,并通

38、過創(chuàng)建一個ServerSocket對象來監(jiān)聽來自客戶的連接請求,默認端口為8000,然后無限循環(huán)調(diào)用accept()方法接受客戶程序的連接。</p><p>  服務(wù)器具有以下功能:</p><p>  (1)啟動服務(wù),建立偵聽,接受客戶端連接。</p><p>  (2)從流中讀取經(jīng)過序列化的對象。</p><p>  (3)分析讀取的對象

39、進行相應(yīng)的操作(登錄信息的驗證反饋、注冊信息的驗證和反饋、轉(zhuǎn)發(fā)聊天信息等)</p><p>  (4)向客戶端發(fā)送系統(tǒng)消息。</p><p><b>  (5)保存日志 </b></p><p>  (6)關(guān)閉服務(wù),并向客戶端發(fā)送服務(wù)器關(guān)閉消息。</p><p>  服務(wù)器程序模塊源碼:</p><p

40、>  <VisualStudioProject</p><p>  ProjectType="Visual C++"</p><p>  Version="8.00"</p><p>  Name="ClientSocket"</p><p>  ProjectGUID=

41、"{E0E667B8-5A36-481F-A6EC-DEF0D5D29FA6}"</p><p><b>  ></b></p><p>  <Platforms></p><p><b>  <Platform</b></p><p>  Name=&q

42、uot;Win32"</p><p><b>  /></b></p><p>  </Platforms></p><p>  <ToolFiles></p><p>  </ToolFiles></p><p>  <Configura

43、tions></p><p>  <Configuration</p><p>  Name="Debug|Win32"</p><p>  OutputDirectory=".\Debug"</p><p>  IntermediateDirectory=".\Debug&quo

44、t;</p><p>  ConfigurationType="1"</p><p>  InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"</p><p>  當用戶發(fā)送聊天信息時,服務(wù)端將會收到客戶端用Sock

45、et傳輸過來的聊天信息對象,然后將其強制轉(zhuǎn)換為Chat對象,并將本次用戶的聊天信息對象添加到聊天對象集Message中,以供所有聊天用戶訪問。</p><p><b>  2、登錄程序模塊</b></p><p>  是客戶端程序登錄界面,負責用戶帳號信息的驗證與接收服務(wù)器的反饋??蛻舳苏埱筮B接,服務(wù)器的accept()方法建立與客戶端的套接字連接??蛻舳藢⒌卿浶畔⒎?/p>

46、裝成Customer對象通過輸出流發(fā)送服務(wù)器,等待服務(wù)器的驗證,服務(wù)器反饋驗證信息,客戶端根據(jù)反饋信息進行登錄和登錄信息錯誤處理。</p><p><b>  關(guān)鍵代碼如下:</b></p><p><b>  try</b></p><p><b>  { </b></p><p

47、><b>  //連接到服務(wù)器</b></p><p>  BEGIN_MESSAGE_MAP(CServerDlg, CDialog)</p><p>  //{{AFX_MSG_MAP(CServerDlg)</p><p>  ON_WM_SYSCOMMAND()</p><p>  ON_WM_PAINT(

48、)</p><p>  ON_WM_QUERYDRAGICON()</p><p>  ON_WM_TIMER()</p><p>  ON_WM_CTLCOLOR()</p><p>  ON_BN_CLICKED(IDC_BUTTON_LEND, OnButtonLend)</p><p>  ON_BN_CLIC

49、KED(IDC_BUTTON_SERVICE1, OnButtonService1)</p><p>  ON_BN_CLICKED(IDC_BUTTON_SEND, OnButtonSend)</p><p>  ON_WM_DESTROY()</p><p>  ON_LBN_SELCHANGE(IDC_LIST_USER, OnSelchangeListUse

50、r)</p><p>  ON_BN_CLICKED(IDC_BUTTON_NEW, OnButtonNew)</p><p>  //}}AFX_MSG_MAP</p><p>  END_MESSAGE_MAP()3、注冊程序模塊</p><p>  為客戶端程序注冊界面,負責用戶帳號信息的注冊驗證與反饋。注冊模塊的原理跟登錄模塊基本相同

51、。注冊信息封裝成Register_Customer對象,但服務(wù)器只驗證用戶名,且只要求用戶名不重復(fù),服務(wù)器檢驗注冊信息文件中的用戶名,若不重復(fù)則反饋注冊成功的信息。其他的注冊信息(密碼、年齡、郵箱)合法性都交給注冊模塊自己完成。</p><p>  4、客戶聊天主程序模塊</p><p>  客戶通過Socket(InetAddress,port)建立與服務(wù)器的連接。客戶端通過構(gòu)造Obje

52、ctInputstream,ObjectOutputstream與服務(wù)器建立輸入輸出流,然后雙方通過該輸入輸出流來相互傳遞信息,服務(wù)器一旦收到客戶方的連接請求,服務(wù)器accept()方法返回一個新建的Socket對象。客戶端接受服務(wù)器傳來的聊天信息進行處理后顯示在自己的聊天紀錄中。同樣客戶端要發(fā)送文件和信息時也向服務(wù)器發(fā)送請求,服務(wù)器同樣通過accept()方法返回一個Socket對象,客戶端就可也進行相應(yīng)的操作。</p>

53、<p>  聊天客戶端必須具有以下功能。</p><p>  (1)連接服務(wù)器,發(fā)送用戶登陸請求。</p><p>  (2)向服務(wù)器發(fā)送聊天信息。</p><p>  (3)接收服務(wù)器轉(zhuǎn)發(fā)的了信息。</p><p>  (4)接受服務(wù)器發(fā)送的系統(tǒng)消息。</p><p><b>  關(guān)鍵源碼如下:

54、</b></p><p>  ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);</p><p>  ASSERT(IDM_ABOUTBOX < 0xF000);</p><p>  CMenu* pSysMenu = GetSystemMenu(FALSE);</p><p

55、>  if (pSysMenu != NULL)</p><p><b>  {</b></p><p>  CString strAboutMenu;</p><p>  strAboutMenu.LoadString(IDS_ABOUTBOX);</p><p>  if (!strAboutMenu.IsEm

56、pty())</p><p><b>  {</b></p><p>  pSysMenu->AppendMenu(MF_SEPARATOR);</p><p>  pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);</p><p><

57、;b>  }</b></p><p><b>  } </b></p><p>  4. 系統(tǒng)實現(xiàn)與最終效果</p><p>  4.1系統(tǒng)工作的過程:</p><p>  主要用到的類為MFC包中的Socket類。編寫了多個圖形界面,包括服務(wù)器界面,客戶端聊天界面,登錄界面,注冊界面,音樂播放器界面等

58、。</p><p>  以服務(wù)器所在的主機的ip為“127.0.0.1”所偵聽的端口號為“8000”。分別先后啟動服務(wù)器和客戶端應(yīng)用程序,客戶端用戶填入登錄信息,當服務(wù)器收到客戶端的登錄請求后,若驗證登錄信息正確,則向客戶端發(fā)送一個反饋一個登錄成功的消息,客戶端和服務(wù)器通過套接字建立了聯(lián)系。建立連接后雙方就可以相互通信:客戶端在自己的文本框輸入要發(fā)送的信息點擊發(fā)送后,發(fā)送的信息就會顯示在服務(wù)器和目的客戶端的文本域

59、中,同樣服務(wù)器也可以在自己的文本框輸入系統(tǒng)信息,點擊發(fā)送信息按鈕后,發(fā)送的信息就會顯示在服務(wù)器和客戶端的文本域中。如若要發(fā)送文本文件,在客戶端界面點擊“瀏覽”,顯示一個打開對話框,在上面選則你要發(fā)送的文本(*.txt)點擊發(fā)送,服務(wù)器再將文檔發(fā)給目的用戶,將在目的用戶的聊天記錄文本框中顯示整個文檔的內(nèi)容。</p><p><b>  4.2使用方法</b></p><p&

60、gt;  1、服務(wù)器端:運行服務(wù)器程序</p><p><b>  2、客戶端:</b></p><p>  (1)進入登陸界面,第一次登陸需要注冊,點注冊按扭。</p><p>  (2)按要求填完注冊信息。</p><p>  (3)返回登陸窗口,輸入用戶名、密碼,進行登陸。</p><p>

61、<b>  (4)進入聊天室。</b></p><p>  進入聊天室后,就可以盡情的聊天了,可以和你喜歡的人私聊了,聊的開心話題還可以進行保存,當然,你也可以清屏。</p><p>  4.3各功能模塊運行效果</p><p><b>  1、服務(wù)器</b></p><p>  服務(wù)器界面左邊是狀

62、態(tài)面板,包括服務(wù)器當前的狀態(tài)、在線人數(shù)、最多在線人數(shù)(一個端口默認的最多訪問量)、服務(wù)器的IP(這里我設(shè)計的是一個回路測試,只是為了測試的方便,不影響它的網(wǎng)絡(luò)功能)以及服務(wù)器的端口號(由服務(wù)器指定);接下了的文本框是用戶日志用于顯示用戶的登錄、注冊、退出的時間等一系列的信息。日志可以保存,這也是服務(wù)器應(yīng)該有的最基本的功能。中間是在線用戶列表,在上面顯示了當前所有的在線用戶,列表可滾動,方便查看;最右邊是聊天消息總匯,用于顯示所有用戶的對

63、話記錄,當文本域中的內(nèi)容大于文本域的長和寬的時候,文本域自動出現(xiàn)水平滾動條或垂直滾動條,拖動它們來查看所有的內(nèi)容,主要功能是能監(jiān)察聊天內(nèi)容的合法性,如果聊天內(nèi)容非法服務(wù)器可以向用戶發(fā)出警告的系統(tǒng)信息;下面為一個文本框,主要是用于服務(wù)器向客戶端發(fā)送信息,既可是中文,也可是字母;最下一排是控制按鈕,“發(fā)送信息” 點擊后將文本框中的內(nèi)容發(fā)送給客戶端,同時清空文本框中的內(nèi)容,并且在服務(wù)器端的文本域顯示“系統(tǒng)消息:”;“關(guān)閉服務(wù)器”:點擊后關(guān)閉服

64、務(wù)器。</p><p><b>  圖5 服務(wù)器</b></p><p><b>  2、登錄</b></p><p>  這里將服務(wù)器的IP設(shè)置為默認的,127.0.0.1回路測試,不可編輯。所以這一項可以跳過不填。用戶名和密碼輸入為注冊成功的用戶,單擊登錄按鈕進入聊天室。如果用戶名和密碼錯誤可以彈出相應(yīng)的對話框。單擊注

65、冊按鈕進入注冊界面,這個操作一般提供給新用戶。 </p><p><b>  圖6 登錄界面</b></p><p><b>  3、注冊</b></p><p>  注冊界面為新用戶提供了注冊信息輸入的界面。</p><p><b>  圖7 注冊界面</b></p

66、><p>  4、客戶端主聊天界面</p><p>  客戶端聊天用戶端界面如下:最上面的菜單欄提供了“系統(tǒng)”和“幫助”兩個子菜單,“系統(tǒng)”包括“清除屏幕”、“保存聊天紀錄”、“退出系統(tǒng)”等項目,“幫助”提供了聊天室的介紹信息;最左邊是用戶列表,顯示了聊天室的在線用戶列表;在線用戶列表下邊的標簽可以顯示在線人數(shù),極大的方便了用戶;右邊的大的文本框顯示出聊天紀錄,用戶可以在這看到其他成員發(fā)給自己

67、的聊天信息,也是聊天室的關(guān)鍵部分之一。</p><p>  下邊的單行文本框輸入用戶預(yù)發(fā)送的內(nèi)容,這時你可以通過雙擊在線用戶列表框選擇聊天的對象,再通過單擊單選框(私聊,公聊,群聊)選擇聊天的方式,上述步驟都完成后就單擊發(fā)送按鈕發(fā)送聊天信息。聊天室附加了文件傳送的功能,這是對聊天室單一聊天功能的拓展。在最下邊附加功能面板上,還有音樂播放按鈕,單擊之后將出現(xiàn)音樂播放器界面。</p><p>

68、  圖8 聊天用戶端界面</p><p><b>  4.4拓展的功能</b></p><p>  客戶端可以向服務(wù)器發(fā)送一個整篇文檔為“*.txt”,具體如下:在客戶端界面點擊“瀏覽”,顯示一個打開對話框,在上面選則你要發(fā)送的文本(*.txt)點擊發(fā)送,服務(wù)器再將文檔發(fā)給目的用戶,將在目的用戶的聊天記錄文本框中顯示整個文檔的內(nèi)容。</p><p&

69、gt;<b>  4.5功能模塊測試</b></p><p>  對軟件的測試在軟件開發(fā)中非常重要也非常必要,軟件分析、設(shè)計過程中難免有各種各樣的錯誤,需要通過測試查找錯誤,以對軟件進行修改和進一步完善。軟件測試的目標是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程,好的測試方案是發(fā)現(xiàn)軟件盡可能多的錯誤,從而對錯誤進行修改以提高軟件質(zhì)量。</p><p>  測試本系統(tǒng)采用黑盒

70、測試法:主要測試軟件能否滿足功能要求,檢查輸入能否被正確地接受、能否正確地輸出結(jié)果。</p><p><b>  測試步驟:</b></p><p><b>  用戶登錄測試:</b></p><p>  輸入用戶名(1)和密碼(2),系統(tǒng)提示用戶密碼錯誤,重新輸入密碼(1),成功進入系統(tǒng)。</p><

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論