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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p>  第一章 功能需求分析1</p><p>  1.1 課程設(shè)計目的及意義1</p><p>  1.2 系統(tǒng)實現(xiàn)的具體功能1</p><p>  1.3 主要特點2</p><p>  1.4 Winsock編程原理和方法2</p><p>  第二章 系統(tǒng)設(shè)計3</p>

2、<p>  2.1 總體方案3</p><p>  第三章 技術(shù)實現(xiàn)4</p><p>  3.1 程序界面4</p><p>  3.2 主要控件說明5</p><p>  3.3 部分代碼及說明6</p><p>  3.3.1 主站W(wǎng)insock1_DataArrival事件6</p&

3、gt;<p>  3.3.2 從站W(wǎng)insock1_DataArrival事件6</p><p>  3.3.3 巡回檢測代碼塊7</p><p>  3.3.4 主站主動向從站發(fā)送數(shù)據(jù)模塊7</p><p>  3.3.5 從站異常報告模塊8</p><p>  3.3.6 燈的實現(xiàn)模塊8</p>&l

4、t;p>  第四章 總結(jié)和體會9</p><p><b>  附錄10</b></p><p><b>  主站代碼截圖10</b></p><p><b>  從站代碼截圖11</b></p><p>  第一章 功能需求分析</p><p&

5、gt;  1.1 課程設(shè)計目的及意義</p><p>  本次的課程設(shè)計是通過主從式通信來了解和掌握簡單的通信協(xié)議,是作為本學(xué)期學(xué)習(xí)TCP/IP協(xié)議族的一次實際應(yīng)用,有助于深入的了解通信協(xié)議的具體實現(xiàn)方式。這次的課程設(shè)計加深對所學(xué)知識的了解和掌握,比如TCP協(xié)議和UDP協(xié)議的所用場合和不同之處;學(xué)習(xí)到對巡回檢測系統(tǒng)的設(shè)計方法;同時學(xué)習(xí)了解和掌握對VB開發(fā)環(huán)境的一些基本的簡單的常識,當(dāng)然也增強(qiáng)了動手能力,為今后的設(shè)

6、計做鋪墊。</p><p>  1.2 系統(tǒng)實現(xiàn)的具體功能</p><p>  TCP是一種面向連接的通信協(xié)議,UDP(用戶數(shù)據(jù)文報協(xié)議)是一個無連接協(xié)議。在工業(yè)應(yīng)用中,為了提高效率通常采用UDP作為實時數(shù)據(jù)傳輸協(xié)議。因為UDP不提供數(shù)據(jù)包分組、組裝和不能對數(shù)據(jù)包進(jìn)行排序,無連接,處理速度快,因此效率相對比較高。</p><p>  本系統(tǒng)是基于UDP協(xié)議的通信軟件

7、設(shè)計的巡回檢測系統(tǒng)。巡回檢測系統(tǒng)能夠?qū)崿F(xiàn)一些工業(yè)系統(tǒng)的自動化,通過該系統(tǒng)提取所需要的實時信息,根據(jù)信息內(nèi)容做出相應(yīng)的回應(yīng)。巡回檢測是計算機(jī)遠(yuǎn)程監(jiān)控系統(tǒng)的一種工作模式。計算機(jī)遠(yuǎn)程監(jiān)控系統(tǒng)通常由主站和從站構(gòu)成,是典型的主從式通信系統(tǒng)。正常情況下,巡回檢測模式采用一問一答的方式進(jìn)行,當(dāng)從站發(fā)生異常時可主動上報(例如報警)。具體要求如下:</p><p> ?、?設(shè)1個主站(Server)和5個從站(Client)。&l

8、t;/p><p> ?、?系統(tǒng)應(yīng)設(shè)置巡檢周期和從站采樣時間間隔。</p><p> ?、?系統(tǒng)的工作模式為:自動巡檢+主動上報。</p><p>  ④.主機(jī)地址:127.0.0.1(主站和從站);本地端口號:10000(主站);遠(yuǎn)端端口號:10001~10005(從站)。</p><p>  ⑤.分別設(shè)計主站和從站通信程序,同時打開主站和從站的

9、程序時,主站能夠定時巡檢從站,從站做出相應(yīng)的回應(yīng),檢測到的在主站上顯示出來(如燈亮表示連接上,反之表示斷開)。</p><p><b>  1.3 主要特點</b></p><p>  本設(shè)計主站是主動呼叫方,主站按周期向各個從站端口發(fā)送信息,從站收到信息后作出應(yīng)答。當(dāng)從站發(fā)生異常時要主動向主站報告。從站程序可以同時打開多個。</p><p>

10、  本系統(tǒng)是使用VB6.0編程環(huán)境實現(xiàn)的,基于UDP通信協(xié)議的主從式通信。所使用的控件對象有:標(biāo)簽(Label),文本框(Textbox),命令按鈕(Command),通信(Winsock),形狀(Shape),定時器(Timer)。</p><p>  實現(xiàn)從一個窗口跳轉(zhuǎn)到另一個窗口。</p><p>  1.4 Winsock編程原理和方法</p><p>  

11、Winsock 控件對用戶來說是不可見的,利用 WinSock 控件可以與遠(yuǎn)程計算機(jī)建立連接,并通過用戶數(shù)據(jù)報協(xié)議 (UDP)或者傳輸控制協(xié)議 (TCP)進(jìn)行數(shù)據(jù)交換。這兩種協(xié)議都可以用來創(chuàng)建客戶與服務(wù)器應(yīng)用程序。本次設(shè)計是利用Winsock控件對象實現(xiàn)基于UDP通信協(xié)議的主從式通信,為了傳輸數(shù)據(jù),首先要設(shè)置客戶計算機(jī)的 Local Port 屬性。然后,服務(wù)器計算機(jī)只需將 Remote Host 設(shè)置為客戶計算機(jī)的 Internet

12、地址,并將 Remote Port 屬性設(shè)置為跟客戶計算機(jī)的 Local Port 屬性相同的端口,并調(diào)用 Send Data 方法來著手發(fā)送信息。于是,客戶計算機(jī)使用 Data Arrival 事件內(nèi)的 Get Data 方法來獲取已發(fā)送的信息。</p><p>  主要使用的方法有Send Data 方法和Get Data 方法,在調(diào)用 Send Data 方法來著手發(fā)送信息時要先設(shè)定相同的端口;當(dāng)傳進(jìn) UN

13、ICODE 字符串并在網(wǎng)絡(luò)上發(fā)送出去之前,將轉(zhuǎn)化成 ANSI 字符串。Get Data 方法是獲取當(dāng)前的數(shù)據(jù)塊并將其存儲在變體類型的變量中。通常與Data Arrival 事件并用。</p><p><b>  第二章 系統(tǒng)設(shè)計</b></p><p><b>  2.1 總體方案</b></p><p>  本次設(shè)計是實

14、現(xiàn)1個主站和5個從站的通信,主站的端口號為10000,1到5號從站的端口為10001~10005。結(jié)構(gòu)如下:</p><p>  主站每隔一段時間從1號從站到5號從站依次發(fā)送一次巡檢信息,從站收到信息就做出相應(yīng)的回應(yīng),在從站之間還有一定的間隔。流程圖如下:</p><p><b>  第三章 技術(shù)實現(xiàn)</b></p><p><b>

15、  3.1 程序界面</b></p><p><b>  主站:</b></p><p><b>  從站:</b></p><p>  3.2 主要控件說明</p><p>  主站中使用了1個計時器Timer()、1個Winsock控件和1個command控件,其他textbox控件

16、和label若干</p><p>  從站使用1個Winsock控件和1個command控件,其他textbox控件和label若干,</p><p>  Timer控件:通過引發(fā) Timer 事件,Timer 控件可以有規(guī)律地隔一段時間執(zhí)行一次代碼。Timer 控件用于背景進(jìn)程中,它是不可見的。</p><p>  Winsock控件:Winsock 控件對用戶來

17、說是不可見的,利用 WinSock 控件可以與遠(yuǎn)程計算機(jī)建立連接,并通過用戶數(shù)據(jù)報協(xié)議 (UDP)或者傳輸控制協(xié)議 (TCP)進(jìn)行數(shù)據(jù)交換。這兩種協(xié)議都可以用來創(chuàng)建客戶與服務(wù)器應(yīng)用程序。與 Timer 控件類似,WinSock 控件在運(yùn)行時是不可見的。主要的用途:①創(chuàng)建收集用戶信息的客戶端應(yīng)用程序,并將收集的信息發(fā)送到某中央服務(wù)器。②創(chuàng)建一個服務(wù)器應(yīng)用程序,作為多個用戶的數(shù)據(jù)的匯入點。③創(chuàng)建“聊天”應(yīng)用程序。</p>&l

18、t;p>  Command Button 控件:Command Button 控件可以開始、中斷或者結(jié)束一個進(jìn)程。</p><p>  Textbox 控件:Textbox 控件有時也稱作編輯字段或者編輯控件,顯示設(shè)計時輸入的用戶輸入的、或運(yùn)行時在代碼中賦予控件的信息。</p><p>  3.3 部分代碼及說明</p><p>  3.3.1 主站W(wǎng)inso

19、ck1_DataArrival事件</p><p>  Private Sub Winsock1_DataArrival (ByVal bytesTotal As Long)</p><p>  If bytesTotal > 2 Then</p><p>  Dim strData As String</p><p>  On Err

20、or Resume Next</p><p>  Winsock1.GetData strData</p><p>  Text2.Text = Text2.Text & Chr(13) & Chr(10) & strData</p><p>  Shape1 (Winsock1.RemotePort - 10001).FillColor =

21、 &HFF00&</p><p><b>  End If</b></p><p><b>  End Sub</b></p><p>  說明:如果收到的字節(jié)大于2執(zhí)行GetData 并將收到的數(shù)據(jù)在text2文本框中輸出,并將相應(yīng)的Shape1(Winsock1.RemotePort - 10001)圖

22、形填充為綠色。</p><p>  3.3.2 從站W(wǎng)insock1_DataArrival事件</p><p>  Private Sub Winsock2_DataArrival (ByVal bytesTotal As Long)</p><p>  If bytesTotal > 2 Then</p><p>  Dim str

23、Data As String</p><p>  Winsock2.GetData strData</p><p>  Text2.Text = Text2.Text & Chr(13) & Chr(10) & strData</p><p>  Winsock2.RemoteHost = "127.0.0.1"</

24、p><p>  Winsock2.RemotePort = 10000</p><p>  Winsock2.SendData Label4.Caption & "號站應(yīng)答"</p><p><b>  End If</b></p><p><b>  End Sub</b>

25、</p><p>  說明:當(dāng)從站接收到數(shù)據(jù)大于2時執(zhí)行GetData 方法,并將接收到的數(shù)據(jù)在text2中顯示,還要在接受到主站發(fā)來的數(shù)據(jù)后向主站發(fā)送應(yīng)答Winsock2.SendData Label4.Caption & "號站應(yīng)答"。</p><p>  3.3.3 巡回檢測代碼塊</p><p>  Private Sub Tim

26、er1_Timer ()</p><p>  For i = 10001 To 10005</p><p>  Winsock1.RemoteHost = "127.0.0.1"</p><p>  Winsock1.RemotePort = i</p><p>  Shape1 (Winsock1.RemotePort

27、- 10001).FillColor = &H80000008</p><p>  Winsock1.SendData "主站巡檢" & i - 10000 & "號站"</p><p><b>  DoEvents</b></p><p><b>  Sleep 200

28、</b></p><p><b>  Next i</b></p><p><b>  End Sub</b></p><p>  每隔Timer1.Interval時間執(zhí)行一次改代碼塊,每次執(zhí)行時利用For循環(huán)將Winsock1.RemotePort設(shè)置為從10001到10005間的數(shù),并且執(zhí)行Winsock

29、1.SendData "主站巡檢" & i - 10000 & "號站"向當(dāng)前端口發(fā)送數(shù)據(jù)。循環(huán)體每執(zhí)行一次Sleep 200。</p><p>  3.3.4 主站主動向從站發(fā)送數(shù)據(jù)模塊</p><p>  Private Sub Command1_Click ()</p><p>  Winsock1.Re

30、moteHost = "127.0.0.1"</p><p>  Winsock1.RemotePort = Text1.Text</p><p>  Winsock1.SendData Text3.Text</p><p>  Text3.Text = ""</p><p>  Text1.Text

31、= ""</p><p><b>  End Sub</b></p><p>  說明:此代碼由Command1_Click()事件觸發(fā),根據(jù)Text1.Text中的用戶輸入主動設(shè)置Winsock1.RemotePort,并發(fā)送Text3.Text中用戶輸入的字符串到相應(yīng)的端口,然后清空輸入框和端口框的數(shù)據(jù)。</p><p>

32、;  3.3.5 從站異常報告模塊</p><p>  Private Sub Command1_Click ()</p><p>  Winsock2.SendData Text3.Text</p><p>  Text3.Text = ""</p><p><b>  End Sub</b><

33、;/p><p>  說明:由Command1_Click()事件觸發(fā),點擊Command1后發(fā)送Text3.Text中的字符串到主站報警,然后清空輸入的數(shù)據(jù)。</p><p>  3.3.6 燈的實現(xiàn)模塊</p><p>  在每次循環(huán)體執(zhí)行時將當(dāng)前端口對應(yīng)的Shape填充為黑色</p><p>  Shape1 (Winsock1.Remote

34、Port - 10001).FillColor = &H80000008</p><p>  當(dāng)收到應(yīng)答時,將相應(yīng)的Shape填充為綠色</p><p>  Shape1 (Winsock1.RemotePort - 10001).FillColor = &HFF00&</p><p><b>  第四章 總結(jié)和體會</b&g

35、t;</p><p>  本次課程設(shè)計,使用VB6.0開發(fā)環(huán)境來做的,通過一些簡單的控件對象來完成基于UDP通信協(xié)議的主從式通信的巡回檢測和主動上報的程序。本次設(shè)計主要使用的控件是Winsock控件,Winsock控件是為了連接兩臺主機(jī)的控件,它主要使用Data Arrival事件來完成連接的。</p><p>  巡回檢測是主站通過Timer控件來按照一定的時間間隔對從站的主機(jī)進(jìn)行巡檢,

36、來確定是否連接,若連接就顯示綠燈,就可以進(jìn)行數(shù)據(jù)交流,反之不行。</p><p>  主動上報就是從站發(fā)生異常時主動向主站發(fā)送相應(yīng)的數(shù)據(jù),便于主站及時的采取相應(yīng)的措施來解決異常。但是,主動上報也是有一定的弊端的,當(dāng)多臺主機(jī)同時發(fā)生異常,又同時上報的話,就可能產(chǎn)出沖突。主站不能同時受理這些上報信息。解決這種沖突可以采取分割時間片的方法,為每個從站分配一個時間片,在相應(yīng)從站的時間片內(nèi)產(chǎn)生的異??梢陨蠄螅髡居枰蕴幚?;

37、反之,不允許上報,當(dāng)然主站也不會處理的,要等到下一個時間片到來的時候才可以上報,這樣才可以解決此沖突。 </p><p>  根據(jù)設(shè)計的要求,通過上網(wǎng),和同學(xué)交流,請教老師等方式最終完成了本次設(shè)計,在整個過程中遇到了很多問題,問題大多源于對VB語言的不了解,有些解決,也有還沒解決的,不是很完美。當(dāng)然收獲也很大:首先 實現(xiàn)了這個系統(tǒng)很有成就感。其次,了解了VB語言,有了自學(xué)一門語言的經(jīng)驗,最主要的就是要多問,遇到問

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論