




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2015/2016 學(xué)年 第 2 學(xué)期軟件設(shè)計(jì)實(shí)驗(yàn)報(bào)告模塊名稱 VC+ 專業(yè) 廣播電視工程 學(xué)生班級(jí) B 學(xué)生學(xué)號(hào) B 學(xué)生姓名 陳超 指導(dǎo)教師 余雪勇 設(shè)計(jì)題目1. 熟悉VC+6.0的使用環(huán)境2. 獲取計(jì)算機(jī)的名稱和IP地址3. 基本C/S模式的通信實(shí)驗(yàn)4. 典型網(wǎng)絡(luò)應(yīng)用設(shè)計(jì)5. 綜合網(wǎng)絡(luò)應(yīng)用設(shè)計(jì)任務(wù)要求1熟悉VC+6.0的使用環(huán)境:掌握最基本的基于控制臺(tái)、對(duì)話框、單文檔及多文檔界面的項(xiàng)目創(chuàng)建方法;掌握項(xiàng)目中的文件構(gòu)成及作用,學(xué)會(huì)在程序文件中增加功能代碼的方法;掌握程序的生成和調(diào)試方法。2.獲取計(jì)算機(jī)的名稱和IP地址實(shí)驗(yàn):掌握在程序中獲取網(wǎng)絡(luò)參數(shù)的方法:獲取計(jì)算機(jī)的名稱和IP地址;獲取計(jì)算機(jī)
2、的子網(wǎng)掩碼;獲取計(jì)算機(jī)的DNS設(shè)置;獲取計(jì)算機(jī)的網(wǎng)卡地址; 3.基本C/S模式的通信實(shí)驗(yàn)編寫程序?qū)崿F(xiàn)下述功能:一個(gè)UDPClient/Server模式的通信程序;一個(gè)TCP Client/Server模式的通信程序基本要求:能輸入計(jì)算機(jī)的IP地址和端口號(hào),能輸入、發(fā)送文本信息和顯示接受的文本信息。4.典型網(wǎng)絡(luò)應(yīng)用程序設(shè)計(jì)4.1聊天室設(shè)計(jì):完成一個(gè)文本聊天室程序的設(shè)計(jì)。4.2簡(jiǎn)單的瀏覽器的實(shí)現(xiàn):設(shè)計(jì)一個(gè)簡(jiǎn)單的瀏覽器5.綜合網(wǎng)絡(luò)應(yīng)用設(shè)計(jì):房產(chǎn)報(bào)修網(wǎng)絡(luò)化管理實(shí)驗(yàn)設(shè)備及軟件硬件:PC機(jī)一臺(tái);軟件:VC+6.0;其他通用軟件工具同組人員學(xué)號(hào)及姓名無參考文獻(xiàn)1. 朱桂英、張?jiān)?Visual C+網(wǎng)絡(luò)編程
3、開發(fā)與實(shí)戰(zhàn) 清華大學(xué)出版社2. 姚領(lǐng)田等 MFC窗口程序設(shè)計(jì) 中國(guó)水利水電出版社3. 汪曉平、鐘軍 Visual C+網(wǎng)絡(luò)通信協(xié)議分析與應(yīng)用實(shí)現(xiàn) 人民郵電出版社4. 曹衍龍Visual C+網(wǎng)絡(luò)通信編程實(shí)用案例精選(第二版)人民郵電出版社5. 雷斌、楊建華、黃超、何斌Visual C+ 6.0網(wǎng)絡(luò)編程技術(shù)人民郵電出版社6. 美David J.Kruglinski譯:希望圖書創(chuàng)作室MICROSOFT VISUAL C+ 6.0技術(shù)內(nèi)幕 北京希望電子出版社一、獲取計(jì)算機(jī)IP地址等網(wǎng)絡(luò)參數(shù)1、 實(shí)驗(yàn)?zāi)康某绦蚰軌蜃詣?dòng)獲取計(jì)算機(jī)的名稱、IP地址、子網(wǎng)掩碼、DNS設(shè)置、網(wǎng)卡地址。2、 實(shí)驗(yàn)內(nèi)容及過程1.
4、啟動(dòng)Visual C+6.0,在此IDE環(huán)境中單擊File/New菜單項(xiàng),打開New對(duì)話框,然后單擊Projects選項(xiàng)卡,選擇“MFC AppWizardexe”一項(xiàng)。在對(duì)話框右上角的ProjectsName中填新工程的名字,然后選擇適當(dāng)?shù)哪夸浳恢梅胖么诵鹿こ?;新建一個(gè)MFC Appwizard(exe)工程,命名為B,選擇Dialog based框架,一定要包含Windows Sockets。2. 在工作區(qū)中選擇“ResourceView”選項(xiàng)卡,選擇Dialog,雙擊菜單控件的名字(IDD_B_DIALOG),右邊出現(xiàn)程序視圖的原始界面,在Dialog里創(chuàng)建應(yīng)用程序框架,刪除對(duì)話框中的靜
5、態(tài)文本框,然后添加控件,選擇靜態(tài)文本框,用來顯示計(jì)算機(jī)名、IP地址等文字,然后對(duì)應(yīng)添加編輯框,修改其屬性,將其ID分別修改為IDC_EDIT1IDC_EDIT7,然后進(jìn)入ClassWizard,建立類向?qū)?,選擇Member Variables選項(xiàng)卡,為其添加成員變量m_tName,m_type,m_cardname,m_sDsMask,m_sDns,m_pMacAddr, m_sIPAddress;如下圖1.1。 圖1.1 添加成員變量3.添加按鈕用于查詢,修改其ID為IDC_BUTTON1,進(jìn) MFC classWizard,選擇Member Maps選項(xiàng)卡,再在Object Ids列表框中
6、選擇IDC_BUTTON1,選擇Messages列表框中的BN_CLICKED,點(diǎn)擊“Add Function”按鈕,增加一個(gè)函數(shù),使用系統(tǒng)默認(rèn)名“IDC_BUTTON1”,單擊“OK”;如下圖1.2。4.編寫程序代碼:OnButton1()中調(diào)用StartUp()函數(shù)來添加WINSOCK類庫(kù),調(diào)用函數(shù)GetLocalHostName獲取主機(jī)名,函數(shù)GetIPAddress獲取IP地址,函數(shù)GetInfo獲取網(wǎng)卡信息,函數(shù)ParseData獲取適配器信息。點(diǎn)擊查詢按鈕,所獲信息均顯示在編輯框內(nèi)。5.在工程-設(shè)置-連接-對(duì)象/庫(kù)模塊中加入對(duì)IPHLPAPI.LIB庫(kù)文件的支持。 圖1.2 添加成
7、員函數(shù)3、 實(shí)驗(yàn)結(jié)果1.點(diǎn)擊查詢按鈕,獲取本機(jī)網(wǎng)絡(luò)參數(shù)顯示如下圖1.3圖1.3 獲取計(jì)算機(jī)的網(wǎng)絡(luò)配置信息4、實(shí)驗(yàn)體會(huì)本實(shí)驗(yàn)是在對(duì)前一階段熟悉VC6.0使用環(huán)境及對(duì)MFC的全面理解的基礎(chǔ)上完成的,開始時(shí)由于不理解MFC編程,以為只需要編寫代碼,所以出了很多錯(cuò)誤,比如在新建工程時(shí)沒有選取Windows Sockets導(dǎo)致程序無法編譯,還有變量定義的類型一開始不熟悉總是忽略而選默認(rèn)值,還有必須鏈接到IPHLPAPI.LIB庫(kù)文件不然會(huì)報(bào)錯(cuò)等等細(xì)節(jié),這些基本注意點(diǎn)應(yīng)牢牢掌握,才能更熟練地完成接下來的任務(wù)。 二、基于UDP模式的通信程序1、實(shí)驗(yàn)?zāi)康耐ㄟ^Sockets編程,設(shè)計(jì)一個(gè)UDP的C/S通信程序,
8、實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)的通信,能編輯文本消息以及實(shí)現(xiàn)該消息的傳送。2、實(shí)現(xiàn)方法:UDP的Server和Client程序相同,采用相同的架構(gòu),Server服務(wù)端對(duì)本地終結(jié)點(diǎn)進(jìn)行監(jiān)聽,客戶端同樣對(duì)相應(yīng)終結(jié)點(diǎn)監(jiān)聽,直接向該終結(jié)點(diǎn)發(fā)送數(shù)據(jù),便可進(jìn)行通信,程序架構(gòu)分為兩部分,一部分是對(duì)本地終結(jié)點(diǎn)的綁定和監(jiān)聽,另一部分是進(jìn)行數(shù)據(jù)的通信。通信過程中,第一步初始化Winsock;第二步建立一個(gè)數(shù)據(jù)報(bào)類型的UDP套接字;第三步使用sendto函數(shù)進(jìn)行通信;第四步關(guān)閉socket;程序流程圖如下圖2.1: 圖2.1 UDP通信程序流程圖3、實(shí)驗(yàn)過程:1按之前詳述步驟建立一個(gè)新工程,取名為BUDP。2在resourceview
9、里的Dialog中創(chuàng)建應(yīng)用程序框架,修改相應(yīng)編輯或按鈕框的Object IDs,在MFC ClassWizard中建立類向?qū)В禾砑幼兞縨_disp,m_sip,m_sport,m_dip,m_dport,添加成員函數(shù)OnButton1,OnRadio1,OnRadio2。3.在工作區(qū)中選擇FileView選項(xiàng)卡,手動(dòng)添加chatsock.cpp和mysocket.cpp和相對(duì)應(yīng)的頭文件,并在程序代碼中引用這兩個(gè)頭文件。4.編寫源程序代碼4、實(shí)驗(yàn)結(jié)果運(yùn)行時(shí)需要打開兩個(gè)運(yùn)行窗口并分別設(shè)置目的端口和源端口的端口號(hào)分別對(duì)應(yīng),選中UDP,并在編輯框里輸入文本信息,點(diǎn)擊“發(fā)送”按鈕,文本信息在另一個(gè)窗口中
10、顯示時(shí),實(shí)現(xiàn)通信。1.UDP服務(wù)端建立如下圖2.2圖2.2 UDP服務(wù)端建立2.UDP客戶端連接如下圖2.3圖2.3 UDP客戶端連接3. UDP客戶端與服務(wù)端連接成功并進(jìn)行聊天如下圖2.4 圖2.4 UDP客戶端與服務(wù)端連接成功并進(jìn)行聊天5、實(shí)驗(yàn)體會(huì)基于C/S模式的UDP模式的通信程序設(shè)計(jì),是第一次嘗試基于socket套接字進(jìn)行數(shù)據(jù)傳輸,因?yàn)閷?duì)于socket流式傳輸原理的理解不夠深刻,在嘗試編寫過程中出現(xiàn)了大量error后,參考了許多相關(guān)mysocket類的實(shí)現(xiàn)與應(yīng)用代碼,也逐步認(rèn)識(shí)到套接字的使用方法;另外,在搭建Dialog框架的使用上,相對(duì)于上一個(gè)實(shí)驗(yàn),諸如可以修改編輯框文字的滾動(dòng)格式等
11、有了更多的了解。此次設(shè)計(jì)的UDP通信一個(gè)很大的局限在于未設(shè)置關(guān)閉UDP連接按鈕及相應(yīng)功能,需要進(jìn)一步深刻理解夯實(shí)原理,探索實(shí)現(xiàn)。三、基于TCP模式的通信程序1、實(shí)驗(yàn)?zāi)康氖褂肧ockets編程,實(shí)現(xiàn)基于TCP的C/S模擬通信。2、實(shí)現(xiàn)方法:對(duì)Socket服務(wù)端采用用多線程框架,對(duì)每一個(gè)客戶端的連接分配一個(gè)子線程,程序采用默認(rèn)端口,一旦運(yùn)行便對(duì)端口開始監(jiān)聽,程序功能分為三部分,包括SocketServer的配置以及監(jiān)聽,數(shù)據(jù)的接收和數(shù)據(jù)的發(fā)送。程序界面有三個(gè)按鈕分別為發(fā)送、清空、關(guān)閉,消息函數(shù)分別為btnClientSend_Click、btnClear_Click、btnExit_Click。對(duì)
12、Socket客戶端,通過設(shè)置菜單設(shè)置連接的服務(wù)器IP,端口采用默認(rèn)端口,簡(jiǎn)單實(shí)現(xiàn)對(duì)服務(wù)器的連接和數(shù)據(jù)收發(fā)。程序流程圖如下圖3.1:圖3.1 TCP通信程序流程圖4、 實(shí)驗(yàn)過程1.建立兩個(gè)新工程,分別取名為BTCPC和BTCPS。2.在工作區(qū)中選擇“ResourceView”選項(xiàng)卡,選擇Dialog,雙擊菜單控件的名字(IDD_BTCPS_DIALOG和IDD_BTCPC_DIALOG),右邊出現(xiàn)程序視圖的原始界面,使用控件添加Static,Button,Edict,Radio等控件,對(duì)每一個(gè)控件右鍵可編輯屬性修改ID和標(biāo)題。3.在工具欄點(diǎn)擊查看-建立類向?qū)?,進(jìn)入Massage Map選項(xiàng)卡,C
13、lass Name選擇BTCPSDlg(客戶端選擇BTCPCDlg),為控件添加事件處理函數(shù)。進(jìn)入Member Varibles選項(xiàng)卡,為控件添加變量名。4.在工作區(qū)中選擇FileView選項(xiàng)卡,在BTCPCFiles中手動(dòng)添加chatsock.cpp,chatsock.h,mysocket.cpp和mysocket.h,在BTCPSFiles中添加clisock.cpp,lstsocket.cpp,mysocket.cpp和對(duì)應(yīng)的頭文件,并在程序代碼中引用這些文件。5.編寫相應(yīng)函數(shù)代碼。4、實(shí)驗(yàn)結(jié)果運(yùn)行時(shí)需要打開兩個(gè)運(yùn)行窗口并分別設(shè)置目的端口和源端口的端口號(hào),先點(diǎn)擊TCP建立服務(wù)器,再點(diǎn)擊T
14、CPclient,并在編輯框里輸入文本信息,點(diǎn)擊“發(fā)送”按鈕,文本信息在另一個(gè)窗口中顯示時(shí),實(shí)現(xiàn)通信。1.TCP服務(wù)器建立如下圖3.2 圖3.2 TCP服務(wù)器建立2. TCP客戶端與服務(wù)端連接成功如下圖3.3圖3.3 TCP客戶端與服務(wù)端連接成功3. TCP客戶端與服務(wù)端進(jìn)行聊天如下圖3.4圖3.4 TCP客戶端與服務(wù)端進(jìn)行聊天5、實(shí)驗(yàn)體會(huì)經(jīng)過TCP和UDP模式的通信程序設(shè)計(jì),對(duì)TCP與UDP的通信原理與區(qū)別有了較為深刻的認(rèn)識(shí)。相對(duì)于UDP通信,TCP是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議,其必須保證傳輸?shù)臄?shù)據(jù)無誤,因此在UDP基本架構(gòu)上要用一個(gè)校驗(yàn)和函數(shù)檢驗(yàn)數(shù)據(jù)是否有錯(cuò)誤,在接
15、收和發(fā)送時(shí)都要計(jì)算校驗(yàn)和,UDP沒有可靠、有次序、不重復(fù)的保證。查找了一些參考資料及相關(guān)代碼發(fā)現(xiàn),一般情況下TCP Socket 的數(shù)據(jù)發(fā)送和接收是調(diào)用send() 及recv() 這兩個(gè)函數(shù)來達(dá)成,而 UDP Socket則是用sendto() 及recvfrom() 這兩個(gè)函數(shù),這兩個(gè)函數(shù)調(diào)用成功發(fā)揮發(fā)送或接收的資料的長(zhǎng)度,否則返回SOCKET_ERROR,所以TCP的兩端每次收發(fā)數(shù)據(jù)前必須建立連接,協(xié)議本身也保證可靠有序,而UDP任何一方建立一個(gè)socket后就可以用這兩個(gè)函數(shù)收發(fā)數(shù)據(jù),但并不關(guān)心對(duì)方是否存在并接受。對(duì)課本理論內(nèi)容是一次極大地實(shí)踐與學(xué)習(xí)。四、基于Socket的文本聊天室設(shè)
16、計(jì)1、實(shí)驗(yàn)?zāi)康睦肳inSocket實(shí)現(xiàn)一個(gè)網(wǎng)絡(luò)聊天室。需要一個(gè)聊天服務(wù)器,它可以和很多客戶端進(jìn)行通信,從而把來自不同的客戶的聊天信息轉(zhuǎn)交到所有其他的客戶端。這樣就形成了一個(gè)采用Client/Server結(jié)構(gòu)的并可以多人同時(shí)在線的聊天室。2、實(shí)現(xiàn)方法在Internet上的聊天室程序一般都是以服務(wù)器提供服務(wù)端連接響應(yīng),使用者通過客戶端程序登錄到服務(wù)器,就可以與登錄在同一服務(wù)器上的用戶交談,這是一個(gè)面向連接的通信過程。因此,程序要在TCP/IP環(huán)境下,實(shí)現(xiàn)服務(wù)器端和客戶端兩部分程序。1)服務(wù)器端工作流程:服務(wù)器端通過socket()系統(tǒng)調(diào)用創(chuàng)建一個(gè)Socket數(shù)組后(即設(shè)定了接受連接客戶的最大數(shù)目
17、),與指定的本地端口綁定bind(),就可以在端口進(jìn)行偵聽listen()。如果有客戶端連接請(qǐng)求,則在數(shù)組中選擇一個(gè)空Socket,將客戶端地址賦給這個(gè)Socket。然后登錄成功的客戶就可以在服務(wù)器上聊天了。2)客戶端工作流程:客戶端程序相對(duì)簡(jiǎn)單,只需要建立一個(gè)Socket與服務(wù)器端連接,成功后通過這個(gè)Socket來發(fā)送和接收數(shù)據(jù)就可以了。流程圖如下圖4.1圖4.1 聊天室設(shè)計(jì)流程圖3、實(shí)驗(yàn)過程:1.新建項(xiàng)目,命名為BChatRoom。2. 在工作區(qū)中選擇“ResourceView”選項(xiàng)卡,選擇Dialog,雙擊菜單控件的名字(IDD_BChatRoom _DIALOG),右邊出現(xiàn)程序視圖的原
18、始界面,使用控件添加Static,Button,Edit,IpAddress等控件,對(duì)每一個(gè)控件右鍵可編輯屬性修改ID和標(biāo)題。3. 在工具欄點(diǎn)擊查看-建立類向?qū)?,進(jìn)入Massage Map選項(xiàng)卡,Class Name選擇BChatRoomDlg,為控件添加事件處理函數(shù)。進(jìn)入Member Varibles選項(xiàng)卡,為控件添加變量名。4. 在工作區(qū)中選擇FileView選項(xiàng)卡,在BChatRoomFiles中手動(dòng)添加ClientSocket.cpp,ServerSocket.cpp,CMessg.cpp和對(duì)應(yīng)的頭文件,并在程序代碼中引用這些文件。5.編寫相應(yīng)函數(shù)代碼。4、實(shí)驗(yàn)結(jié)果1聊天室服務(wù)端建立如
19、下圖4.2 圖4.2 聊天室服務(wù)端建立2.聊天室客戶端連接如下圖4.3 圖4.3 聊天室客戶端連接3. 聊天室客戶端與服務(wù)端連接成功并開始聊天如下圖4.4圖4.4 聊天室客戶端與服務(wù)端連接成功并開始聊天4.多站點(diǎn)連接進(jìn)入聊天室并顯示相關(guān)提示信息如下圖4.5圖4.5 一個(gè)游客進(jìn)入聊天室5、實(shí)驗(yàn)體會(huì)由于程序較為復(fù)雜,在編寫過程中出現(xiàn)了很多問題,比如對(duì)于圖形界面的編程部分還未能熟練掌握和應(yīng)用,因此在開始試驗(yàn)之前應(yīng)該做好充分的準(zhǔn)備,熟練構(gòu)想相關(guān)函數(shù)的功能,理清思路和畫好流程圖也是很有必要的,尤其是此類較為綜合型的設(shè)計(jì),今后一定要吸取這些寶貴的經(jīng)驗(yàn)教訓(xùn),以便更深入的學(xué)習(xí)。另外,從運(yùn)行結(jié)果來看,總體實(shí)現(xiàn)了
20、多人在線聊天功能,還未能進(jìn)行用戶之間的一對(duì)一的聊天,有待進(jìn)一步學(xué)習(xí)并完善。通過本課題的設(shè)計(jì),可以比較深入的了解和掌握WINSOCK控件基本屬性、方法和事件,理解網(wǎng)絡(luò)聊天通信的概念,傳輸控制協(xié)議(TCP/IP)進(jìn)行數(shù)據(jù)交流,初步掌握網(wǎng)絡(luò)聊天通信程序的設(shè)計(jì)方法。并能鞏固和擴(kuò)展上課期間的學(xué)習(xí)內(nèi)容,更好的適應(yīng)將來社會(huì)的需求。五、簡(jiǎn)單的瀏覽器的實(shí)現(xiàn)1、實(shí)驗(yàn)?zāi)康耐ㄟ^MFC提供的CHTMLView類,開發(fā)一個(gè)簡(jiǎn)單的瀏覽器,實(shí)現(xiàn)網(wǎng)頁(yè)瀏覽功能。2、實(shí)現(xiàn)方法 程序流程圖如下5.1圖5.1 瀏覽器程序流程圖3、實(shí)驗(yàn)過程1.新建一個(gè)工程,命名為BBrowse,進(jìn)入MFC AppWizard設(shè)置第一步。選擇應(yīng)用程序型為
21、單文檔。并選擇“中文中國(guó)APPWZCHS.DLL”默認(rèn)選項(xiàng),單擊下一步按鈕,在MFC AppWizard設(shè)置第2步和第3步中使用其默認(rèn)值,進(jìn)入第4步。由于在WEB瀏覽器時(shí)需要增加一個(gè)WEB地址的對(duì)話框,因此在這里選擇Internet Explorer ReBars 作為工具欄的外觀,這樣應(yīng)用程序?qū)?huì)自動(dòng)的生成一個(gè)對(duì)話框;在第5步中不需要做任何修改,在最后一步中,需要修改圖類的基類,使之變成ChtmlView類,由于選擇了ChtmlView類作為該應(yīng)用程序視圖類的基類,所以改程序已經(jīng)有了一定的WEB瀏覽功能。然后再對(duì)菜單項(xiàng)和工具欄進(jìn)行修改,使程序能夠?qū)崿F(xiàn)所需要的功能。2.在工作區(qū)中選擇“Reso
22、urceView”選項(xiàng)卡,選擇Dialog,雙擊菜單控件的名字(IDR_MAINFRAME),右邊出現(xiàn)程序視圖的原始界面,增加Edit控件作為地址欄,并右鍵屬性修改ID和標(biāo)題。選擇Menu菜單下的IDR_MAINFRAME,點(diǎn)擊“查看”下拉菜單中的空格,增加“前進(jìn)”、“后退”按鈕,并賦ID名。3. 在工具欄點(diǎn)擊查看-建立類向?qū)?,進(jìn)入Massage Map選項(xiàng)卡,Class Name選擇BBrowseDlg,為控件添加事件處理函數(shù)。進(jìn)入Member Varibles選項(xiàng)卡,為控件添加變量名。4.編寫相應(yīng)函數(shù)代碼。4、實(shí)驗(yàn)結(jié)果 輸入 按下回車鍵,進(jìn)入百度首頁(yè),如圖5.2所
23、示:圖5.2 瀏覽器進(jìn)入百度頁(yè)面5、實(shí)驗(yàn)體會(huì)瀏覽器項(xiàng)目的設(shè)計(jì)較之前各項(xiàng)實(shí)驗(yàn)有很大的不同,不僅表現(xiàn)在基于單文檔形式需要手動(dòng)繪圖ToolBar,另外在項(xiàng)目的創(chuàng)建上基類必須選擇HtmlView,否則無法編譯,添加成員變量時(shí)應(yīng)注意控件的屬性等。實(shí)驗(yàn)過程中最終調(diào)試運(yùn)行雖然沒有error,但發(fā)現(xiàn)地址欄前面的箭頭符號(hào)顯示成ToolBar中的第一個(gè)IDR_MAINFRAME,最終經(jīng)過組建調(diào)試Run To cursor一步步排查,發(fā)現(xiàn)在代碼段的一個(gè)調(diào)用語(yǔ)句中確實(shí)出現(xiàn)錯(cuò)誤,應(yīng)將默認(rèn)的第一個(gè)ToolBar改成自己繪制的。在瀏覽器的設(shè)計(jì)過程中,由于能力及需求分析上的局限,設(shè)計(jì)只實(shí)現(xiàn)了前進(jìn),后退功能,未有能力實(shí)現(xiàn)新建頁(yè)
24、面等功能。應(yīng)在充分掌握的基礎(chǔ)上進(jìn)行修改和完善,以便將理論和實(shí)踐更好地融會(huì)貫通。六、房產(chǎn)報(bào)修系統(tǒng)網(wǎng)絡(luò)化管理1、實(shí)驗(yàn)?zāi)康幕趕ocket套接字編寫MFC工程以實(shí)現(xiàn)房產(chǎn)報(bào)修系統(tǒng)網(wǎng)絡(luò)化管理。2、實(shí)驗(yàn)內(nèi)容及過程1.新建兩個(gè)工程,還是基于對(duì)話框模式和windows套接字,分別命名為Bbaoxius和Bbaoxiuc。2. 在工作區(qū)中選擇“ResourceView”選項(xiàng)卡,選擇Dialog,雙擊菜單控件的名字IDD_Bbaoxius_DIALOG(或IDD_Bbaoxiuc _DIALOG),右邊出現(xiàn)程序視圖的原始界面,使用控件添加Static,Button,Edit等控件,對(duì)每一個(gè)控件右鍵可編輯屬性修改I
25、D和標(biāo)題。3. 在工具欄點(diǎn)擊查看-建立類向?qū)?,進(jìn)入Massage Map選項(xiàng)卡,Class Name選擇BbaoxiusDlg,為控件添加事件處理函數(shù)。進(jìn)入Member Varibles選項(xiàng)卡,為控件添加變量名。4. 在工作區(qū)中選擇FileView選項(xiàng)卡,在BbaoxiusFiles中手動(dòng)添加ListenThread.cpp和對(duì)應(yīng)的頭文件,并在程序代碼中引用這些文件。5.編寫相應(yīng)函數(shù)代碼。3、實(shí)驗(yàn)結(jié)果1.服務(wù)器建立連接如下圖6.1圖6.1 房產(chǎn)保修系統(tǒng)服務(wù)器建立2.客戶端連接填寫相應(yīng)文字進(jìn)行報(bào)修申請(qǐng)如下圖6.2 圖6.2 客戶端連接并填寫申請(qǐng)3.服務(wù)器端收到報(bào)修信息并反饋客戶端報(bào)修成功如下圖6
26、.3圖6.3 客戶端報(bào)修成功、服務(wù)器收到報(bào)修申請(qǐng)信息4、實(shí)驗(yàn)小結(jié)這個(gè)實(shí)驗(yàn)比較復(fù)雜,是在熟悉基于TCP/IP的socket設(shè)計(jì)的基礎(chǔ)上進(jìn)行的綜合應(yīng)用設(shè)計(jì),題目寬泛,難度較大,經(jīng)過需求分析與程序流程的構(gòu)建初步確立房產(chǎn)報(bào)修系統(tǒng)的功能與實(shí)現(xiàn)方法。經(jīng)過努力嘗試,客戶端連接服務(wù)器進(jìn)行報(bào)修申請(qǐng),服務(wù)器提供連接并收到相關(guān)消息匯總,初步實(shí)現(xiàn)了總體功能,由于沒有相關(guān)知識(shí)的支持,沒有進(jìn)行數(shù)據(jù)庫(kù)這一塊的設(shè)計(jì),所以信息的通信還僅僅停留在對(duì)話框中,與實(shí)際應(yīng)用還存在一定差距,此外,在客戶端申請(qǐng)的三條報(bào)修信息出于人性化角度服務(wù)器端應(yīng)能將三條信息空隔開顯示,避免疑義,但在修改代碼過程中一直出現(xiàn)報(bào)錯(cuò),沒有實(shí)現(xiàn)此項(xiàng)功能,今后仍需繼
27、續(xù)學(xué)習(xí)。七、課程設(shè)計(jì)小結(jié)此次本軟件設(shè)計(jì)不僅加深了對(duì)理論課的理解,掌握理論應(yīng)用于實(shí)際的方法,也從很大程度上了解基于TCP/IP協(xié)議棧的Socket程序設(shè)計(jì)方法,是動(dòng)手能力的一次極大提高。本次軟件設(shè)計(jì)總體內(nèi)容是在熟悉VC+6.0的運(yùn)行環(huán)境并掌握socket流式傳輸原理的基礎(chǔ)上應(yīng)用Socket程序設(shè)計(jì)方法,設(shè)計(jì)完成典型的網(wǎng)絡(luò)應(yīng)用及設(shè)計(jì)實(shí)現(xiàn)綜合的網(wǎng)絡(luò)應(yīng)用系統(tǒng)?;叵胝麅芍艿幕蛐量喃@激動(dòng)的設(shè)計(jì)過程,有以下幾點(diǎn)認(rèn)識(shí)和體會(huì):1.在設(shè)計(jì)之前應(yīng)做好充分的準(zhǔn)備。為了更深入地了解本次實(shí)驗(yàn)的要求和需要掌握的知識(shí)點(diǎn),老師精心為我們準(zhǔn)備了豐富的學(xué)習(xí)資源和可以下載資料的網(wǎng)站。在設(shè)計(jì)之初,看到題目覺得很陌生,雖然之前的程序設(shè)計(jì)有熟練使用過VC6.0及C+語(yǔ)言,但是此次設(shè)計(jì)的要求更高、范圍更廣、含義更深,MFC項(xiàng)目的創(chuàng)建以前更是無所涉及,無從下手,但想到老師提供了很多學(xué)習(xí)的資源,于是下載了PDF仔細(xì)閱讀,發(fā)現(xiàn)其對(duì)于本次軟件設(shè)計(jì)實(shí)驗(yàn)很有幫助,能夠很詳細(xì)地一步
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 深入分析2025年創(chuàng)業(yè)扶持政策的嘉獎(jiǎng)機(jī)制試題及答案
- 綠色建筑材料市場(chǎng)推廣策略與政策支持下的區(qū)域市場(chǎng)研究
- 小學(xué)摸底測(cè)試題及答案
- 物理實(shí)驗(yàn)中誤差分析的技巧試題及答案
- 理解分銷渠道的商務(wù)英語(yǔ)試題及答案
- 環(huán)保站面試真題及答案
- 線下演出市場(chǎng)復(fù)蘇2025年劇院運(yùn)營(yíng)成本控制案例報(bào)告
- 數(shù)字人民幣2025跨境支付技術(shù)挑戰(zhàn)與跨境支付清算效率提升報(bào)告
- 2025公務(wù)員考試常用題目及答案
- 政策激勵(lì)下的創(chuàng)業(yè)者精神探討試題及答案
- 國(guó)家助學(xué)貸款還款救助歸檔材料清單
- 11《杠桿》教學(xué)設(shè)計(jì)-2023-2024學(xué)年科學(xué)五年級(jí)下冊(cè)人教鄂教版
- 2024版惡性腫瘤患者營(yíng)養(yǎng)治療指南解讀課件
- 2025屆四川省成都市高三上學(xué)期畢業(yè)班摸底測(cè)試(零診)歷史試題(解析版)
- YB 4019-1991 輕燒菱鎂礦粉化學(xué)分析方法檸檬酸法測(cè)定輕燒菱鎂礦粉的活性
- 路面工程練習(xí)試卷1(共101題)
- DL∕T 802.8-2014 電力電纜用導(dǎo)管技術(shù)條件 第8部分:埋地用改性聚丙烯塑料單壁波紋電纜導(dǎo)管
- DL∕T 1901-2018 水電站大壩運(yùn)行安全應(yīng)急預(yù)案編制導(dǎo)則
- 教育公平問題案例
- DL∕T 1630-2016 氣體絕緣金屬封閉開關(guān)設(shè)備局部放電特高頻檢測(cè)技術(shù)規(guī)范
- 2024年北京衛(wèi)生職業(yè)學(xué)院高職單招筆試歷年職業(yè)技能測(cè)驗(yàn)典型例題與考點(diǎn)解析含答案
評(píng)論
0/150
提交評(píng)論