2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論