

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 目 錄</b></p><p> 摘要……………………………………………………………………………………………………1</p><p> 關鍵詞…………………………………………………………………………………………………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ā)和設計方案……………………………………………………………………………… 5</p><p> 3.1開發(fā)環(huán)境及工具…………………………………………………………………………………5</p><p> 3.2系統(tǒng)總體設計要點………………………………………………………………………………5<
6、;/p><p> 3.2.1實現(xiàn)思想………………………………………………………………………………………5</p><p> 3.2.3多用戶實時工作原理圖………………………………………………………………………6</p><p> 3.3系統(tǒng)功能模塊劃分及設計原理…………………………………………………………………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)絡聊天室</b></p><p> 摘要:在網(wǎng)絡飛速發(fā)展的今天,互聯(lián)網(wǎng)成為人們快速獲取、發(fā)布和傳遞信息的重要渠道,它在人們政治、經(jīng)濟、生活等各個方面發(fā)揮著重要的作用?;ヂ?lián)網(wǎng)上存在大量的信息所以信息交換也顯得尤為重要。人們一直在尋找一種方便、低廉的交流信息的工具,因此網(wǎng)上聊天便成為人們的首選。本論文通過VC的Socket實現(xiàn)了一個局域網(wǎng)的聊天室
10、——基于VC的聊天室的設計與實現(xiàn)。本聊天室服務器包括顯示在線用戶、日志管理、聊天信息管理、發(fā)送系統(tǒng)信息等功能??蛻舳税ǖ卿?、注冊、公聊、私聊傳送文本文件等功能。</p><p> 關鍵詞:局域網(wǎng);聊天室;VC;套接字</p><p> 引言: 隨著互聯(lián)網(wǎng)逐步普及,人們的生活和工作也越來越離不開信息網(wǎng)絡的支持,將會有越來越多的人利用網(wǎng)上資源,享受不斷發(fā)展和完善的網(wǎng)絡服務,以此來提高工作
11、效率和水平。隨著我國經(jīng)濟發(fā)展和網(wǎng)絡的普及,網(wǎng)絡技術也越來越多地被應用于日常工作之中。在程序設計領域,面向對象的編程技術正在逐步代替面向過程的程序設計技術,成為計算機應用設計開發(fā)的主流,尤其在網(wǎng)絡技術開發(fā)中,面向對象的VC語言編程和相關的VC技術正在以前所未有的速度發(fā)展。網(wǎng)上購物、網(wǎng)上銀行、遠程教學、網(wǎng)絡聊天、網(wǎng)絡游戲等都開始使用VC技術。而且VC使平臺無關性的思想成為現(xiàn)實,獨立的VC程序可以被編譯為與平臺無關的字節(jié)碼,這種字節(jié)碼可以運行
12、在任何擁有VC解釋器的機器上。 真正降低了企業(yè)成品和程序員的負擔。對于人與人之間通過網(wǎng)絡的溝通和交流,聊天室是人們最常見、最直接的交流的方式。本聊天系統(tǒng)以聊天交流為主,為廣大用戶提供一個借助網(wǎng)絡進行人際交往的平臺,也是網(wǎng)絡與現(xiàn)實最貼近的實用型應用。本文所介紹的網(wǎng)絡聊天系統(tǒng)是基于開放的VC應用程序開發(fā)設計的,其主要特性是能動態(tài)、實時的完成信息的傳遞,且具有高效的交互性,有效的處理客戶請求且具有脫離數(shù)據(jù)庫技術方</p><
13、;p> 1系統(tǒng)開發(fā)的意義及需求分析</p><p><b> 1.1課題來源</b></p><p> 根據(jù)當前網(wǎng)絡的需求,網(wǎng)絡聊天越來越受到各種網(wǎng)民所青睞。因此開發(fā)網(wǎng)絡聊天是相當有必要,而且在網(wǎng)站內增加聊天功能,它不僅可以提高網(wǎng)站的訪問量,同時可以留著訪客,更重要的是讓訪客透過聊天室實時的互相交流。而本人也學習過VC語言,對網(wǎng)絡編程也較有興趣,為了更好的
14、考驗自己對VC語言的掌握程度,本人就決定以《基于VC的網(wǎng)絡聊天室》為畢業(yè)設計,希望通過這一次能進一步提高本人的網(wǎng)絡開發(fā)編程的能力。</p><p><b> 1.2需求分析</b></p><p> 聊天系統(tǒng)不外乎兩個方面,服務器端和客戶端。簡單分析一下兩個方面所要完成的任務,對設計這個程序來說,等于完成了一半。首先來看一下服務器。</p><
15、p><b> 服務器端的任務:</b></p><p> 1、服務器端應當建立一個ServerSocket,并且不斷進行偵聽是否有客戶端連接或者斷開連接。2、服務器端應當是一個信息發(fā)送中心,所有客戶端的信息都傳到服務器端,由服務器端根據(jù)要求分發(fā)信息。</p><p> 以上就是服務器端最主要的兩個任務。不難看出,服務器端的任務并不復雜。</p>
16、;<p> 客戶端應該完成的工作包括:</p><p> 1、與服務器端建立通信通道,向服務器端發(fā)送信息。2、接收來自服務器的信息。</p><p> 相對服務器而言,客戶端的任務更加簡單,有了以上的簡單分析,可以知道,解決上述四個問題,即完成了該聊天系統(tǒng)的核心。</p><p><b> 2.系統(tǒng)開發(fā)技術</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)絡互聯(lián)的核心協(xié)議。TCP/IP協(xié)議的體系結構共有四個層次,即應用層、傳輸層、網(wǎng)絡
18、互聯(lián)層和網(wǎng)絡接口層。</p><p> IP協(xié)議的作用:第一,它是網(wǎng)絡層的協(xié)議,提供互聯(lián)網(wǎng)上數(shù)據(jù)傳輸?shù)慕y(tǒng)一格式。第二,提供不可靠的無連接的服務。第三,定義了互聯(lián)網(wǎng)上的傳輸數(shù)據(jù)的基本單元,提供了供路由選擇的信息,沒有差錯校驗和處理的機制。</p><p> TCP協(xié)議的功能:差錯控制——可靠性、面向連接、分段(Segment)、端口號。TCP是傳輸控制協(xié)議,是面向連接的提供了一種可靠的傳
19、輸服務,它用三次握手和滑動窗口機制來保證傳輸?shù)目煽啃?,及進行流量控制。</p><p> 2.1.2 TCP/IP協(xié)議進行傳輸數(shù)據(jù)傳輸?shù)倪^程:</p><p> 應用程序為了傳輸數(shù)據(jù)會調用TCP,將數(shù)據(jù)和對應的參數(shù)傳給TCP,將TCP數(shù)據(jù)包封裝在IP包內,通過網(wǎng)絡送給目的TCP。接收方TCP在接收到數(shù)據(jù)后通知上層應用程序,TCP將保證接收數(shù)據(jù)的正確性。在實現(xiàn)TCP的主機上,TCP可以被
20、看成是一個模塊,和文件系統(tǒng)區(qū)別不大,TCP 也可以調用一些操作系統(tǒng)的功能,TCP不直接和網(wǎng)絡打交道,控制網(wǎng)絡的任務由專門的設備驅動模塊完成。TCP只是調用IP接口,向TCP提供所有TCP需要的服務[2]。</p><p> 2.1.3 端口號:</p><p> 有的時候,一個ip地址不能完整的標識一臺服務器,這是因為一臺物理性的計算機同時運行著多個應用程序,這就需要我們來區(qū)別同一臺機
21、子上的不同的服務,所以就在傳輸層和應用層上設置接口,就是端口。端口實際是一個16位長的地址,他的范圍是0~65535之間,其中0~1023是熟知端口,主要是給提供服務的應用程序使用,這些端口是所有應用進程都知道的,1024~65535為一般端口,也稱動態(tài)端口、連接端口,用來隨時分配要求通信的個客戶端應用程序。在數(shù)據(jù)傳輸過程中,各種服務器不斷的檢測分配給他的端口,一邊發(fā)現(xiàn)要求和他通信的客戶端[3]。</p><p>
22、; 2.2 Socket的簡介:</p><p> Socket,簡稱套接字,用于實現(xiàn)網(wǎng)絡上客戶和服務器之間的連接。也就是說網(wǎng)絡上兩個或兩個以上雙工方式通信的進程之間總有一個連接,這個連接的端點成為套接字,套接字是在比較低的層次上通信的。</p><p> 具體的說:一個服務器應用程序一般偵聽一個特定的端口等待客戶端的連接請求,當一個連接請求到達時,客戶端和服武器端建立一個通信連接,
23、在連接過程中,客戶端被分配一個本地端口與一個Socket建立連接,客戶端通過寫Socket來通知服務器,以讀Socket中的信息,類似的服務器也獲得一個本地端口,它需要一個新的端口號來偵聽原始端口上的其他連接請求。服務器也通過它的本地端口連接一個Socket,通過讀寫和客戶端通信[8]。</p><p> 2.2.1 Socket程序的工作過程:</p><p> 1.建立Socket
24、連接:在通信開始之前由通信雙方確認身份,建立一條專用的虛擬連接道。</p><p> 2.數(shù)據(jù)通信:利用虛擬連接通道傳送數(shù)據(jù)信息進行通信。</p><p> 3.關閉:通信結束時,再將所建的虛擬連接拆除。</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> 第三此握手:源端機收到含有兩次初始序列號的應答后,再向目的主機發(fā)送一個
26、帶有兩次連接的序列號的確認。</p><p> 具體過程如下:[4] </p><p><b> 圖2 三次握手協(xié)議</b></p><p> 3.系統(tǒng)分析與設計方案</p><p> 3.1開發(fā)環(huán)境及工具</p><p><b> 本系統(tǒng)所用的工具:</b><
27、;/p><p> 服務器端:(Windows平臺)首先應有Microsoft Visual C++ 6.0</p><p> 客戶端:Windows平臺 首先應有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> 內 存:256以上的DDR內存;</p><p> 顯 卡:128M以上顯存顯卡</p><p> 軟件配置:WINDOWS XP 版本等。</p><p&
29、gt; 3.2聊天系統(tǒng)的總體設計要點3.2.1實現(xiàn)思想[15]</p><p> 在局域網(wǎng)上的聊天程序一般都是以服務器提供服務端連接響應,使用者通過客戶端程序登錄到服務器,就可以與登錄在同一服務器上的用戶交談,這是一個面向連接的通信過程。因此,程序要在TCP/IP環(huán)境下,實現(xiàn)服務器端和客戶端兩部分程序。</p><p><b> 服務器端工作流程:</b>&l
30、t;/p><p> 服務器端通過系統(tǒng)調用創(chuàng)建一個ServerSocket與指定的本地端口綁定,就可以在端口進行偵聽。如果有客戶端連接請求,則創(chuàng)建一個Socket,將客戶端地址賦給這個Socket。然后登錄成功的客戶就可以在服務器上聊天了。</p><p><b> 客戶端工作流程:</b></p><p> 客戶端程序相對簡單,只需要建立一個
31、Socket與服務器端連接,成功后通過這個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)啟動服務器程序,服務器端創(chuàng)建一個
32、ServerSocket對象,指定端口號。</p><p> (2)ServerSocket對象等候客戶端的連接請求。</p><p> (3)啟動客戶端程序,登錄用戶。如果未注冊,先注冊再登錄。登錄成功進入聊天室用戶界面。</p><p> (4)客戶端創(chuàng)建一個Socket對象,指定主機地址和端口號,向服務器發(fā)送連接請求。</p><p&
33、gt; (5)服務器端收到客戶端請求,建立一條TCP連接,再創(chuàng)建一個Socket對象與客戶端</p><p> 的Socket對象進行通信。</p><p> (6)服務器端和客戶端分別建立字節(jié)輸入/輸出流,進行數(shù)據(jù)傳輸準備。</p><p> (7)服務器端和客戶端通過各自的字節(jié)輸入流獲得對方發(fā)送過來的數(shù)據(jù),通過字節(jié)輸出</p><p&
34、gt;<b> 向對方發(fā)送數(shù)據(jù)。</b></p><p> (8)一方?jīng)Q定結束通信,向對方發(fā)送結素信息,另一方收到結束信息后,雙方分別關閉各自的TCP連接。</p><p> (9)對象停止等候客戶端連接請求。</p><p> 3.2.3 多用戶實時工作原理圖[5]</p><p> 圖4 多用戶實時工作原理
35、圖</p><p> 注:服務器的run()方法中采用了while(true)結構,不斷監(jiān)聽客戶端的請求,如收到請求,建立與當前請求的客戶端連接的套接字,從而與客戶端建立聯(lián)系。</p><p> 3.3系統(tǒng)的功能模塊劃分及設計原理</p><p> 當用戶聊天時,將當前用戶名、聊天對象、聊天內容和是否私聊進行封裝并且序列化,然后與服務器建立Socket連接,再
36、用對象輸出流包裝Socket的輸出流將聊天信息對象發(fā)送給服務器端。當用戶發(fā)送聊天信息時,服務端將會收到客戶端用Socket傳輸過來的聊天信息對象,然后將其強制轉換為Chat對象,并將本次用戶的聊天信息對象添加到聊天對象集Message中,以供所有聊天用戶訪問。接收用戶的聊天信息是由多線程技術實現(xiàn)的,因為客戶端必須時時關注更新服務器上是否有最新消息,在本程序中設定的是1秒刷新服務器一次,如果間隔時間太短將會增加客戶端與服務器端的通信負擔,
37、而間隔時間長就會讓人感覺沒有時效性,所以經(jīng)過權衡后認為1秒最佳,因為每個用戶都不可能在1秒內連續(xù)發(fā)送信息。當每次用戶接收到聊天信息后將會開始分析聊天信息然后將適合自己的信息人性化顯示在聊天信息界面上。</p><p><b> 1、服務器程序模塊</b></p><p> 服務器與客戶間通過套接口Socket(TCP)連接。服務器采用多線程以滿足多用戶的請求,并通
38、過創(chuàng)建一個ServerSocket對象來監(jiān)聽來自客戶的連接請求,默認端口為8000,然后無限循環(huán)調用accept()方法接受客戶程序的連接。</p><p> 服務器具有以下功能:</p><p> (1)啟動服務,建立偵聽,接受客戶端連接。</p><p> (2)從流中讀取經(jīng)過序列化的對象。</p><p> (3)分析讀取的對象
39、進行相應的操作(登錄信息的驗證反饋、注冊信息的驗證和反饋、轉發(fā)聊天信息等)</p><p> (4)向客戶端發(fā)送系統(tǒng)消息。</p><p><b> (5)保存日志 </b></p><p> (6)關閉服務,并向客戶端發(fā)送服務器關閉消息。</p><p> 服務器程序模塊源碼:</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ā)送聊天信息時,服務端將會收到客戶端用Sock
45、et傳輸過來的聊天信息對象,然后將其強制轉換為Chat對象,并將本次用戶的聊天信息對象添加到聊天對象集Message中,以供所有聊天用戶訪問。</p><p><b> 2、登錄程序模塊</b></p><p> 是客戶端程序登錄界面,負責用戶帳號信息的驗證與接收服務器的反饋。客戶端請求連接,服務器的accept()方法建立與客戶端的套接字連接??蛻舳藢⒌卿浶畔⒎?/p>
46、裝成Customer對象通過輸出流發(fā)送服務器,等待服務器的驗證,服務器反饋驗證信息,客戶端根據(jù)反饋信息進行登錄和登錄信息錯誤處理。</p><p><b> 關鍵代碼如下:</b></p><p><b> try</b></p><p><b> { </b></p><p
47、><b> //連接到服務器</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對象,但服務器只驗證用戶名,且只要求用戶名不重復,服務器檢驗注冊信息文件中的用戶名,若不重復則反饋注冊成功的信息。其他的注冊信息(密碼、年齡、郵箱)合法性都交給注冊模塊自己完成。</p><p> 4、客戶聊天主程序模塊</p><p> 客戶通過Socket(InetAddress,port)建立與服務器的連接??蛻舳送ㄟ^構造Obje
52、ctInputstream,ObjectOutputstream與服務器建立輸入輸出流,然后雙方通過該輸入輸出流來相互傳遞信息,服務器一旦收到客戶方的連接請求,服務器accept()方法返回一個新建的Socket對象??蛻舳私邮芊掌鱾鱽淼牧奶煨畔⑦M行處理后顯示在自己的聊天紀錄中。同樣客戶端要發(fā)送文件和信息時也向服務器發(fā)送請求,服務器同樣通過accept()方法返回一個Socket對象,客戶端就可也進行相應的操作。</p>
53、<p> 聊天客戶端必須具有以下功能。</p><p> (1)連接服務器,發(fā)送用戶登陸請求。</p><p> (2)向服務器發(fā)送聊天信息。</p><p> (3)接收服務器轉發(fā)的了信息。</p><p> (4)接受服務器發(fā)送的系統(tǒng)消息。</p><p><b> 關鍵源碼如下:
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類。編寫了多個圖形界面,包括服務器界面,客戶端聊天界面,登錄界面,注冊界面,音樂播放器界面等
58、。</p><p> 以服務器所在的主機的ip為“127.0.0.1”所偵聽的端口號為“8000”。分別先后啟動服務器和客戶端應用程序,客戶端用戶填入登錄信息,當服務器收到客戶端的登錄請求后,若驗證登錄信息正確,則向客戶端發(fā)送一個反饋一個登錄成功的消息,客戶端和服務器通過套接字建立了聯(lián)系。建立連接后雙方就可以相互通信:客戶端在自己的文本框輸入要發(fā)送的信息點擊發(fā)送后,發(fā)送的信息就會顯示在服務器和目的客戶端的文本域
59、中,同樣服務器也可以在自己的文本框輸入系統(tǒng)信息,點擊發(fā)送信息按鈕后,發(fā)送的信息就會顯示在服務器和客戶端的文本域中。如若要發(fā)送文本文件,在客戶端界面點擊“瀏覽”,顯示一個打開對話框,在上面選則你要發(fā)送的文本(*.txt)點擊發(fā)送,服務器再將文檔發(fā)給目的用戶,將在目的用戶的聊天記錄文本框中顯示整個文檔的內容。</p><p><b> 4.2使用方法</b></p><p&
60、gt; 1、服務器端:運行服務器程序</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、服務器</b></p><p> 服務器界面左邊是狀
62、態(tài)面板,包括服務器當前的狀態(tài)、在線人數(shù)、最多在線人數(shù)(一個端口默認的最多訪問量)、服務器的IP(這里我設計的是一個回路測試,只是為了測試的方便,不影響它的網(wǎng)絡功能)以及服務器的端口號(由服務器指定);接下了的文本框是用戶日志用于顯示用戶的登錄、注冊、退出的時間等一系列的信息。日志可以保存,這也是服務器應該有的最基本的功能。中間是在線用戶列表,在上面顯示了當前所有的在線用戶,列表可滾動,方便查看;最右邊是聊天消息總匯,用于顯示所有用戶的對
63、話記錄,當文本域中的內容大于文本域的長和寬的時候,文本域自動出現(xiàn)水平滾動條或垂直滾動條,拖動它們來查看所有的內容,主要功能是能監(jiān)察聊天內容的合法性,如果聊天內容非法服務器可以向用戶發(fā)出警告的系統(tǒng)信息;下面為一個文本框,主要是用于服務器向客戶端發(fā)送信息,既可是中文,也可是字母;最下一排是控制按鈕,“發(fā)送信息” 點擊后將文本框中的內容發(fā)送給客戶端,同時清空文本框中的內容,并且在服務器端的文本域顯示“系統(tǒng)消息:”;“關閉服務器”:點擊后關閉服
64、務器。</p><p><b> 圖5 服務器</b></p><p><b> 2、登錄</b></p><p> 這里將服務器的IP設置為默認的,127.0.0.1回路測試,不可編輯。所以這一項可以跳過不填。用戶名和密碼輸入為注冊成功的用戶,單擊登錄按鈕進入聊天室。如果用戶名和密碼錯誤可以彈出相應的對話框。單擊注
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、的聊天信息,也是聊天室的關鍵部分之一。</p><p> 下邊的單行文本框輸入用戶預發(fā)送的內容,這時你可以通過雙擊在線用戶列表框選擇聊天的對象,再通過單擊單選框(私聊,公聊,群聊)選擇聊天的方式,上述步驟都完成后就單擊發(fā)送按鈕發(fā)送聊天信息。聊天室附加了文件傳送的功能,這是對聊天室單一聊天功能的拓展。在最下邊附加功能面板上,還有音樂播放按鈕,單擊之后將出現(xiàn)音樂播放器界面。</p><p>
68、 圖8 聊天用戶端界面</p><p><b> 4.4拓展的功能</b></p><p> 客戶端可以向服務器發(fā)送一個整篇文檔為“*.txt”,具體如下:在客戶端界面點擊“瀏覽”,顯示一個打開對話框,在上面選則你要發(fā)送的文本(*.txt)點擊發(fā)送,服務器再將文檔發(fā)給目的用戶,將在目的用戶的聊天記錄文本框中顯示整個文檔的內容。</p><p&
69、gt;<b> 4.5功能模塊測試</b></p><p> 對軟件的測試在軟件開發(fā)中非常重要也非常必要,軟件分析、設計過程中難免有各種各樣的錯誤,需要通過測試查找錯誤,以對軟件進行修改和進一步完善。軟件測試的目標是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程,好的測試方案是發(fā)現(xiàn)軟件盡可能多的錯誤,從而對錯誤進行修改以提高軟件質量。</p><p> 測試本系統(tǒng)采用黑盒
70、測試法:主要測試軟件能否滿足功能要求,檢查輸入能否被正確地接受、能否正確地輸出結果。</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)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡編程課程設計-java聊天室
- 網(wǎng)絡編程課程設計報告--基于linux網(wǎng)絡聊天室設計
- java網(wǎng)絡聊天室課程設計
- tcp課程設計--網(wǎng)絡聊天室
- 網(wǎng)絡編程課程設計報告-android_socket_聊天室
- 網(wǎng)絡編程課程設計-簡單的聊天室程序設計
- 網(wǎng)絡編程課程設計-簡單的聊天室程序設計
- 軟件課程設計報告---簡易網(wǎng)絡聊天室
- 計算機網(wǎng)絡課程設計--基于tcp協(xié)議編程的網(wǎng)絡聊天室
- 計算機網(wǎng)絡課程設計--聊天室
- 基于java的簡單網(wǎng)絡聊天室編程
- web課程設計—— 聊天室
- java網(wǎng)絡聊天室畢業(yè)課程設計報告(內附代碼)
- 基于java網(wǎng)絡聊天室設計
- java課程設計--聊天室系統(tǒng)
- java課程設計---聊天室系統(tǒng)
- 網(wǎng)絡聊天室系統(tǒng)設計與實現(xiàn)
- socket網(wǎng)絡編程linux下實現(xiàn)聊天室費下載
- 聊天室課程設計---聊天程序的設計和實現(xiàn)
- jsp課程設計報告--在線聊天室
評論
0/150
提交評論