版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 計(jì)算機(jī)網(wǎng)絡(luò)課程實(shí)習(xí)報(bào)告</p><p><b> 目錄</b></p><p> 基于C/S結(jié)構(gòu)的聊天應(yīng)用程序</p><p> 課程設(shè)計(jì)的內(nèi)容。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。</p><p> 課程設(shè)計(jì)的軟、硬件條件。。。。。。。。。。。。。。。。。。。。。。&
2、lt;/p><p> 三、 程序設(shè)計(jì)步驟。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。</p><p> 課程設(shè)計(jì)小結(jié)。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。</p><p> 五、 參考文獻(xiàn)。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。</p><p> 六、 附件。。
3、。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。</p><p> 關(guān)鍵詞:C/S結(jié)構(gòu)、聊天程序</p><p> 摘要:在互聯(lián)網(wǎng)飛速發(fā)展的今天,網(wǎng)絡(luò)已成為人們生活中不可缺少的一部分,無論是在商業(yè)、工業(yè)還是政府部門中都早已普及開來,如今就連教育事業(yè)也都承載著網(wǎng)絡(luò)這四通八達(dá)的命脈迅速的發(fā)展起來。基于C/S結(jié)構(gòu)的網(wǎng)絡(luò)聊天程序如雨后春筍般冒出,如ICQ、QQ、M
4、SN Message等網(wǎng)上尋呼軟件,我們用VB編一個(gè)簡單的C/S結(jié)構(gòu)聊天軟件來了解網(wǎng)上尋呼軟件的工作原理。</p><p><b> 一、課程設(shè)計(jì)內(nèi)容</b></p><p> 內(nèi)容:編寫基于C/S結(jié)構(gòu)的聊天應(yīng)用程序。</p><p> 二、課程設(shè)計(jì)的軟、硬件環(huán)境</p><p> 硬件環(huán)境:CPU:AMD BO
5、RTON 2500+,內(nèi)存:512M,網(wǎng)卡:REALTEK RTL8139,Microsoft Virtual PC 2005(Windows2000操作系統(tǒng))。</p><p> 軟件環(huán)境:WindowsXP SP2操作系統(tǒng), Microsoft Visual Basic 6.0。</p><p><b> 三、課程設(shè)計(jì)步驟</b></p><
6、;p> 原理:網(wǎng)絡(luò)聊天工具需要通過TCP/IP協(xié)議,因此可以把網(wǎng)絡(luò)聊天程序分為服務(wù)器端和客戶器端兩部分。其中,服務(wù)器端用以把程序轉(zhuǎn)換成一個(gè)虛擬的 TCP/IP 服務(wù)器。并且和指定的客戶機(jī)建立連接,在連接成功后,向指定的客戶器發(fā)送和接收數(shù)據(jù);客戶器端把程序轉(zhuǎn)換成一個(gè)虛擬的TCP/IP 客戶器,并且向指定的服務(wù)器發(fā)出連接信號,在連接成功后,向指定的服務(wù)器發(fā)送和接收數(shù)其中TCP/IP協(xié)議以包含在控件的屬性中,因此只要正確填入屬性(IP
7、地址,端口),便可實(shí)現(xiàn)網(wǎng)上通訊。</p><p> 本程序是基于C/S構(gòu)架的聊天程序,提供局域網(wǎng)內(nèi)多人進(jìn)行聊天的功能。程序分為兩個(gè)部分,即服務(wù)器程序和客戶端程序。利用VB編寫程序?qū)崿F(xiàn)。</p><p> 1.實(shí)驗(yàn)預(yù)備知識介紹:</p><p> 1.Winsock控件簡介:</p><p> 1)TCP/IP技術(shù)的核心部分(傳輸層、互
8、聯(lián)層和網(wǎng)絡(luò)接口層)通常在操作系統(tǒng)的內(nèi)核中實(shí)現(xiàn)。</p><p> 2)Socket調(diào)用:TCP/IP網(wǎng)絡(luò)操作系統(tǒng)提供的典型網(wǎng)絡(luò)編程界面。</p><p> Windows、UNIX、Linux等都支持socket。</p><p> Microsoft Visual C++:socket被封裝成類(CAsyncSocket和Csocket)。</p>
9、;<p> Microsoft Visual Basic:socket以Winsock控件的方式出現(xiàn)。</p><p> 3)Winsock控件:</p><p> 主機(jī)之間利用TCP通信:(本課程采取的通信方式)</p><p><b> 客戶程序:</b></p><p> RemoteHos
10、t屬性、RemotePort屬性、Connect方法</p><p><b> 服務(wù)器程序</b></p><p> LocalPort屬性、Listen方法、ConnectionRequest事件、Accept方法。</p><p><b> 發(fā)送和接收數(shù)據(jù)</b></p><p> Se
11、ndData、DataArrival事件、GetData方法</p><p><b> 2.設(shè)計(jì)思想:</b></p><p> 服務(wù)器程序的實(shí)現(xiàn)過程是: </p><p> ?。?)服務(wù)器程序必須設(shè)置好LocalPort屬性,作為偵聽端口,該值為一個(gè)整數(shù)(只要是一個(gè)其它TCP/IP應(yīng)用程序沒有使用過的值即可)。 </p>&
12、lt;p> ?。?)使用Listen方法進(jìn)入偵聽狀態(tài),等待客戶機(jī)程序的連接請求。 </p><p> ?。?)客戶機(jī)程序發(fā)出連接請求,使服務(wù)器程序產(chǎn)生ConnectionRequest事件,該事件得到一個(gè)參數(shù)requestID。 </p><p> ?。?)服務(wù)器程序用Accept方法接受客戶機(jī)程序的requestID請求。這樣,服務(wù)器程序就可以用SendData方法發(fā)送數(shù)據(jù)了。Ac
13、cept方法必須用上一步得到的requestID作為其參數(shù)。 </p><p> ?。?)當(dāng)服務(wù)器程序接收到數(shù)據(jù)時(shí),產(chǎn)生DataArrival事件,參數(shù)BytesTotal包含接收到的數(shù)據(jù)字節(jié)數(shù)。在該事件中,可以用GetData方法接收數(shù)據(jù)。 </p><p> ?。?)如果接受到Close事件,則用Close方法關(guān)閉TCP/IP連接。 </p><p> 客戶機(jī)
14、程序的實(shí)現(xiàn)過程是: </p><p> ?。?) 客戶程序設(shè)置Remotehost屬性,以便指定運(yùn)行服務(wù)器程序的主機(jī)名,該字符串可在“控制面板|網(wǎng)絡(luò)|標(biāo)識|計(jì)算機(jī)名”中查到。 </p><p> (2) 設(shè)置RemotePort屬性,以便指定服務(wù)器程序的偵聽端口。 </p><p> (3)使用Connect方法,向服務(wù)器提出連接請求。 </p>
15、<p> ?。?)服務(wù)器接受客戶機(jī)程序的請求,客戶機(jī)程序產(chǎn)生Connect事件,就可以用SendData方法發(fā)送數(shù)據(jù)了。 </p><p> ?。?)當(dāng)客戶機(jī)程序接收到數(shù)據(jù)時(shí),產(chǎn)生DataArrival事件,參數(shù)BytesTotal包含接收到的數(shù)據(jù)字節(jié)數(shù)。在該事件中,可以用GetData方法接收數(shù)據(jù)。 </p><p> ?。?)如果接受到Close事件,則用Close方法關(guān)閉連
16、接。 </p><p> Winsock控件還有兩個(gè)重要的屬性,即Protocol和State。Protocol設(shè)定使用的協(xié)議是TCP還是UDP:取值sckTCPProtocol表示TCP, 取值sckUDPProtocol則表示UDP。因?yàn)閃insock控件的缺省設(shè)置是sck Protocol,所以程序中并沒有使用Protocol屬性。State屬性反映的是當(dāng)前TCP/IP的連接狀態(tài),取值如表1所示。 <
17、;/p><p> 表1 Winsock控件的State屬性及其描述</p><p> 客戶端和服務(wù)端設(shè)計(jì)、運(yùn)行界面如下:</p><p> 1)服務(wù)器程序的編寫</p><p> 2)客戶端程序的編寫:</p><p><b> 3)日志文件的編寫</b></p><p&
18、gt;<b> 4)運(yùn)行結(jié)果顯示:</b></p><p><b> 四、課程設(shè)計(jì)小結(jié)</b></p><p> 通過本次編寫基于C/S結(jié)構(gòu)的聊天應(yīng)用程序的課程設(shè)計(jì),本人掌握了數(shù)據(jù)通信與計(jì)算機(jī)網(wǎng)絡(luò)的基本概念、基本知識和基本技術(shù);能夠做簡單的網(wǎng)絡(luò),能夠使用常用的網(wǎng)絡(luò)工具軟件維護(hù)網(wǎng)絡(luò);通過使用VB語言編制網(wǎng)絡(luò)軟件,加深了對該語言的了解和使用,熟
19、悉了網(wǎng)絡(luò)軟件的設(shè)計(jì)方法,并且通過觀察數(shù)據(jù)的傳輸過程進(jìn)一步理解計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)及其應(yīng)用技術(shù);達(dá)到了課程設(shè)計(jì)的基本要求。</p><p><b> 五、參考文獻(xiàn)</b></p><p> 計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)指導(dǎo) 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)————農(nóng)大計(jì)算機(jī)學(xué)院</p><p> 《Visual Basic 工程應(yīng)用實(shí)例》----- 張顯庫 編著<
20、/p><p><b> 六、附件</b></p><p> 利用Winsock控件編寫簡單的客戶----服務(wù)器的源代碼</p><p><b> 一、服務(wù)器程序</b></p><p> Private Sub txtOut_Change()</p><p> For
21、i = 1 To Num</p><p> If tcpServer(i).State <> sckClosed Then</p><p> tcpServer(i).SendData txtout.Text</p><p><b> End If</b></p><p><b> Next
22、 i</b></p><p><b> End Sub</b></p><p> Private Sub TxtSend_KeyUp(KeyCode As Integer, Shift As Integer)</p><p> If KeyCode = 13 Then</p><p> For i =
23、 1 To Num</p><p> ' If member(i) = 0 Then</p><p> ' Exit Sub</p><p><b> 'Else</b></p><p> If tcpServer(i).State = sckClosed Then</p>
24、;<p><b> Exit For</b></p><p><b> Else</b></p><p> tcpServer(i).SendData "server:" & TxtSend.Text</p><p> 'rtbSave.Text = rtbSave
25、.Text + TxtSend.Text</p><p><b> End If</b></p><p><b> Next i</b></p><p> rtbSave.SelStart = Len(rtbSave.Text)</p><p> rtbSave.Text = rtbSave
26、.Text + Chr(10) + TxtSend.Text</p><p> TxtSend.Text = ""</p><p><b> End If</b></p><p><b> End Sub</b></p><p><b> 二、客戶端程序:<
27、;/b></p><p> Dim NewClient As Boolean</p><p> Private Sub cmdConnect_Click()</p><p> On Error GoTo errhandle:</p><p> tcpClient.RemoteHost = txtHost.Text</p&g
28、t;<p> tcpClient.RemotePort = txtPort.Text</p><p> tcpClient.Connect</p><p> NewClient = True</p><p><b> Exit Sub</b></p><p> errhandle:</p&g
29、t;<p> MsgBox Err.Description</p><p><b> End Sub</b></p><p> Private Sub Command1_Click()</p><p><b> End Sub</b></p><p> Private Sub
30、 Command2_Click()</p><p><b> End Sub</b></p><p> Private Sub Command3_Click()</p><p><b> End Sub</b></p><p> Private Sub cmdExit_Click()<
31、/p><p> Unload frmClient</p><p><b> End Sub</b></p><p> Private Sub cmdLogin_Click()</p><p> Load frmClientLogIn</p><p> frmClientLogIn.Show&
32、lt;/p><p><b> End Sub</b></p><p> Private Sub cmdQuit_Click()</p><p> On Error GoTo errhandle:</p><p> tcpClient.SendData "^q" & lblName.Capt
33、ion & CStr(Now())</p><p><b> Exit Sub</b></p><p> errhandle:</p><p> MsgBox Err.Description</p><p><b> End Sub</b></p><p>
34、 Private Sub Form_Load()</p><p> 'txtHost.Text = "166.111.162.179"</p><p> 'txtPort.Text = "5000"</p><p> Me.cmdConnect.Enabled = False</p><
35、;p> Me.cmdQuit.Enabled = False</p><p><b> End Sub</b></p><p> Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)</p><p> FrmWebBroswer.Show<
36、;/p><p><b> End Sub</b></p><p> Private Sub tcpClient_Connect()</p><p> txtOut.Locked = False</p><p> tcpClient.SendData "/" + lblName.Caption<
37、;/p><p><b> End Sub</b></p><p> Private Sub tcpClient_DataArrival(ByVal bytesTotal As Long)</p><p> Dim sData As String</p><p> If NewClient Then</p>
38、<p> MsgBox "has connected successfully"</p><p> NewClient = False</p><p><b> End If</b></p><p> tcpClient.GetData sData</p><p> rtbIn
39、.Text = rtbIn.Text + sData</p><p> rtbIn.SelStart = Len(sData)</p><p> If sData = "you can quit." Then</p><p> tcpClient.Close</p><p><b> End If<
40、/b></p><p><b> End Sub</b></p><p> Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)</p><p> Select Case Button.Key</p><p> Case I
41、s = "Connect"</p><p> cmdConnect_Click</p><p> Case Is = "Login"</p><p> cmdLogin_Click</p><p> Case Is = "Quit"</p><p>
42、 cmdQuit_Click</p><p> Case Is = "Save"</p><p> ' cmdSave_click</p><p> End Select</p><p><b> End Sub</b></p><p> Private S
43、ub txtOut_KeyUp(KeyCode As Integer, Shift As Integer)</p><p> On Error GoTo errhandle:</p><p> If KeyCode = 13 Then</p><p> tcpClient.SendData lblName.Caption + ":" + t
44、xtOut.Text</p><p> 'rtbIn.Text = rtbIn.Text + txtOut.Text</p><p> txtOut.Text = ""</p><p><b> End If</b></p><p><b> Exit Sub</b&g
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于java的簡易網(wǎng)絡(luò)聊天程序-計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)實(shí)習(xí)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)--聊天室
- 計(jì)算機(jī)網(wǎng)絡(luò)課程
- 計(jì)算機(jī)網(wǎng)絡(luò)實(shí)習(xí)總結(jié)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告(p2p聊天)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)---基于tcp的點(diǎn)到點(diǎn)聊天程序設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用
- 計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用
- 計(jì)算機(jī)網(wǎng)絡(luò)習(xí)題+計(jì)算機(jī)網(wǎng)絡(luò)習(xí)題
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告
- 《計(jì)算機(jī)網(wǎng)絡(luò)》課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告
- 《計(jì)算機(jī)網(wǎng)絡(luò)》課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告
評論
0/150
提交評論