資源描述:
《局部網(wǎng)絡(luò)聊天工具實(shí)驗(yàn)報(bào)告》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)報(bào)告姓名XXX學(xué)院XXX專業(yè)計(jì)算機(jī)科學(xué)與技術(shù)班級(jí)計(jì)算機(jī)1101B實(shí)驗(yàn)課程名稱計(jì)算機(jī)網(wǎng)絡(luò)開(kāi)課院系及實(shí)驗(yàn)室計(jì)算機(jī)工程系實(shí)驗(yàn)樓0503指導(dǎo)教師XXX開(kāi)課時(shí)間2013至2013學(xué)年1學(xué)期北京聯(lián)合大學(xué)教務(wù)處編印實(shí)驗(yàn)4Winsock控件編寫(xiě)局域網(wǎng)聊天工具一、實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)掌握用VB編程實(shí)現(xiàn)簡(jiǎn)單的客戶-服務(wù)器程序的技術(shù)方法,理解TCP和UDP協(xié)議。二、實(shí)驗(yàn)內(nèi)容1、理解Winsock控件Winsock控件是TCP/IP技術(shù)的核心部分(傳輸層、互聯(lián)層和網(wǎng)絡(luò)接口層)通常在操作系統(tǒng)的內(nèi)核中實(shí)現(xiàn)??丶insock可以使編程人員很容易地訪問(wèn)TCP和UDP網(wǎng)絡(luò)服務(wù),在編寫(xiě)客戶和服務(wù)
2、器應(yīng)用程序時(shí),編程人員不需要了解TCP/IP網(wǎng)絡(luò)的技術(shù)細(xì)節(jié),也不需要了解調(diào)用底層socketAPI函數(shù)的具體細(xì)節(jié),通過(guò)設(shè)置Winsock控件的屬性和調(diào)用該控件的方法,可以很容易地連接到遠(yuǎn)程計(jì)算機(jī)并進(jìn)行雙向的數(shù)據(jù)交換。2、編寫(xiě)服務(wù)器程序服務(wù)器程序:lLocalPort屬性、Listen方法、ConnectionRequest事件、Accept方法。SendData、DataArrival事件、GetData方法3、編寫(xiě)客戶端程序RemoteHost屬性、RemotePort屬性、Connect方法4、測(cè)試程序5、主機(jī)之間利用TCP通信TCP是一個(gè)面向連接的傳輸協(xié)議,利用
3、Winsock控件,可以創(chuàng)建并維護(hù)一個(gè)與遠(yuǎn)程主機(jī)的TCP連接,通過(guò)該連接,兩臺(tái)主機(jī)可以順利地交換數(shù)據(jù)。如果在客戶應(yīng)用程序中使用Winsock控件,客戶程序必須知道服務(wù)器所在的主機(jī)名或IP地址和服務(wù)守侯的端口號(hào)。然后調(diào)用Connect方法。如果在服務(wù)器應(yīng)用程序中使用Winsock控件,服務(wù)器需要設(shè)置自己守侯的端口號(hào),然后調(diào)用Listen方法,當(dāng)客戶請(qǐng)求建立連接時(shí),服務(wù)器程序產(chǎn)生ConnectionRequest事件,為了完成連接的建立,服務(wù)器需要在ConnectionRequest事件中調(diào)用Accept方法。一旦建立了連接,客戶和服務(wù)器之間就可以發(fā)送和接收數(shù)據(jù),要發(fā)送數(shù)
4、據(jù),可以調(diào)用SendData方法,當(dāng)接收對(duì)方數(shù)據(jù)時(shí),程序會(huì)產(chǎn)生DataArrival事件,利用Getdata方法可以取收到的數(shù)據(jù)。6、主機(jī)之間利用UDP通信UDP是面向非連接的協(xié)議,因此,利用Winsock控件,主機(jī)之間不需要建立連接就可以進(jìn)行UDP通信。在服務(wù)器開(kāi)始運(yùn)行時(shí),首先需要設(shè)置Winsock的Localport屬性,用以通知操作系統(tǒng)自己守侯的端口號(hào),如果需要向客戶發(fā)送信息,服務(wù)器需要將Remotehost屬性設(shè)置為客戶計(jì)算機(jī)的IP地址,將Remoteport屬性設(shè)置為與客戶端計(jì)算機(jī)的Localport相同的值,然后調(diào)用SendData方法開(kāi)始發(fā)送數(shù)據(jù),在客戶
5、發(fā)送的數(shù)據(jù)到達(dá)服務(wù)器時(shí),服務(wù)器程序會(huì)產(chǎn)生DataArrival事件,在該事件中調(diào)用Getdata方法就可以檢取收到的數(shù)據(jù)。與服務(wù)器基本相同,如果客戶端需要向服務(wù)器發(fā)送信息,客戶程序需要將Remotehost屬性設(shè)置為服務(wù)器計(jì)算機(jī)的IP地址,將Remoteport屬性設(shè)置成與服務(wù)器計(jì)算機(jī)的Localport相同的值,然后調(diào)用SendData方法開(kāi)始發(fā)送數(shù)據(jù),同樣,在服務(wù)器發(fā)送的數(shù)據(jù)到達(dá)客戶端時(shí),客戶程序也會(huì)產(chǎn)生DataArrival事件。在該事件中調(diào)用Getdata方法就可以檢取接收到的數(shù)據(jù)了。三、實(shí)驗(yàn)步驟1.新建工程打開(kāi)VB6.0,創(chuàng)建一個(gè)新的標(biāo)準(zhǔn)EXE工程,如圖1所
6、示。2.修改窗體標(biāo)題為了使程序功能更加清晰、容易理解,將窗體的標(biāo)題(Caption)屬性值修改為“局域網(wǎng)聊天工具”,如圖2所示。圖一圖三圖二3.添加Winsock控件在“工具欄”空白區(qū)域單擊右鍵,選擇“部件”,在彈出的“部件”對(duì)話框中選擇“MicrsoftWinsockControl6.0(SP6)”選項(xiàng),單擊“應(yīng)用”,即可在“工具欄”中添加Winsock控件,如圖3所示。4.繪制窗體元件根據(jù)用戶需求繪制窗體的元件:4.13個(gè)Label控件,分別是:Label1(被連接的IP)、Label2(本地端口)和Label3(遠(yuǎn)端端口);如圖四:圖四圖五4.23個(gè)TextBo
7、x控件,對(duì)應(yīng)名稱分別是:txtRemoteip(對(duì)應(yīng)被連接的IP)、txtLocalport(對(duì)應(yīng)本地端口)、txtremoteport(對(duì)應(yīng)遠(yuǎn)端端口);如圖五:4.3Frame控件2個(gè),分別是遠(yuǎn)端IP和本地IP,并在Frame1和Frame2控件上分別插入TextBox控件2個(gè),控件名稱為T(mén)ext1和Text2;如圖六圖七圖八圖九4.4CommandButton控件2個(gè),分別是cmdClear(對(duì)應(yīng)清空對(duì)話框)、cmdConnect(對(duì)應(yīng)連接)Winsock控件1個(gè),注意設(shè)置該控件的相關(guān)參數(shù),如圖七所示,特別注意其協(xié)議的選擇,應(yīng)為:1-sckUDP