水信息網(wǎng)絡(luò)傳輸技術(shù)課程設(shè)計(jì)報(bào)告_第1頁(yè)
已閱讀1頁(yè),還剩12頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  水信息網(wǎng)絡(luò)傳輸技術(shù)課程設(shè)計(jì)報(bào)告</p><p>  2010年 1 月12日</p><p><b>  目 錄</b></p><p><b>  1.概述1</b></p><p>  2 .設(shè)計(jì)依據(jù)及框圖1</p><p>  2.1 設(shè)計(jì)平

2、臺(tái)2</p><p>  2.2 用戶界面2</p><p>  3.各模塊功能及軟件開發(fā)3</p><p>  3.1 各模塊功能簡(jiǎn)介3</p><p>  3.2 軟件開發(fā)流程5</p><p>  4.軟件調(diào)試分析5</p><p><b>  5.設(shè)計(jì)心得5<

3、;/b></p><p><b>  參考文獻(xiàn)5</b></p><p><b>  附 錄6</b></p><p>  基于UDP協(xié)議的局域網(wǎng)通訊程序</p><p><b>  1.概述</b></p><p>  現(xiàn)代社會(huì)是一個(gè)計(jì)

4、算機(jī)網(wǎng)絡(luò)和PC技術(shù)空前大發(fā)展的時(shí)代,各個(gè)傳統(tǒng)學(xué)科都在積極地與這兩個(gè)新生事物相融合,以謀求學(xué)科的新發(fā)展。在此背景下,農(nóng)業(yè)水利專業(yè)信息化方向應(yīng)運(yùn)而生,《水信息網(wǎng)絡(luò)傳輸技術(shù)》作為該方向中的課程之一,涉及水利和計(jì)算機(jī)兩個(gè)領(lǐng)域,是一門綜合性的課程。本課程從實(shí)用性和先進(jìn)性出發(fā),系統(tǒng)的介紹了計(jì)算機(jī)、通信和網(wǎng)絡(luò)基礎(chǔ)知識(shí),然后對(duì)數(shù)據(jù)通信、網(wǎng)絡(luò)結(jié)構(gòu)、局域網(wǎng)技術(shù)、Internet網(wǎng)絡(luò)、網(wǎng)站組建技術(shù)、網(wǎng)頁(yè)制作等多方面的知識(shí)進(jìn)行了詳細(xì)的論述。</p>

5、<p>  為了加深對(duì)于該課程的理解,課程中特別安排了課程設(shè)計(jì)這一環(huán)節(jié)。</p><p>  在本次課程設(shè)計(jì)中,設(shè)計(jì)題目是編寫一個(gè)簡(jiǎn)單的基于局域網(wǎng)的聊天程序,使分布在局域網(wǎng)內(nèi)的兩臺(tái)計(jì)算機(jī)可以實(shí)現(xiàn)實(shí)時(shí)通信,系統(tǒng)結(jié)構(gòu)如圖-1所示。程序很簡(jiǎn)單,只有短短的幾十行,但“麻雀雖小,五臟俱全”,它已經(jīng)具備了現(xiàn)在流行聊天程序的大體框架和設(shè)計(jì)思想。</p><p>  整個(gè)程序采用Visual

6、 Basic 6.0來(lái)實(shí)現(xiàn),由于在《水信息計(jì)算機(jī)應(yīng)用技術(shù)》和《水信息網(wǎng)絡(luò)傳輸技術(shù)》中,我們系統(tǒng)地學(xué)習(xí)了Visual Basic編程語(yǔ)言和計(jì)算機(jī)網(wǎng)絡(luò)方面的相關(guān)知識(shí),所以這次設(shè)計(jì)也是對(duì)前期學(xué)習(xí)成果的一次“實(shí)戰(zhàn)檢驗(yàn)”。</p><p>  2 .設(shè)計(jì)依據(jù)及用戶界面</p><p>  該設(shè)計(jì)中所涉及到的網(wǎng)絡(luò)通信協(xié)議主要是TCP/IP協(xié)議。TCP/IP協(xié)議是以傳輸控制協(xié)議TCP(Transmiss

7、ion Control Protocol)和網(wǎng)際協(xié)議IP(Internet Protocol)為核心的一組協(xié)議。</p><p>  TCP/IP協(xié)議自1974年誕生以來(lái),逐步投入實(shí)際網(wǎng)絡(luò)應(yīng)用中,在1980年被加入U(xiǎn)NIX內(nèi)核,1983年1月1日又成為ARPnet(世界最早采用分組交換技術(shù)的廣域網(wǎng)絡(luò))上唯一的正式協(xié)議?,F(xiàn)在已經(jīng)是國(guó)際互聯(lián)網(wǎng)的標(biāo)準(zhǔn)協(xié)議。</p><p>  TCP/IP協(xié)議采

8、用分組交換通信方式,即兩臺(tái)計(jì)算機(jī)之間要交換的信息不是作為一個(gè)整體進(jìn)行傳輸,而是劃分成大小基本相同的數(shù)據(jù)分組,這樣的傳輸方式可以提高效率和安全性。 </p><p>  TCP/IP協(xié)議有三個(gè)主要的特點(diǎn):功能豐富、開放性和普遍性。</p><p>  圖-2 TCP/IP參考模型</p><p><b>  2.1 設(shè)計(jì)平臺(tái)</b></

9、p><p>  設(shè)計(jì)中所涉及到的計(jì)算機(jī)編程語(yǔ)言是Visual Basic,程序開發(fā)平臺(tái)采用Visual Basic 6.0。序開發(fā)平臺(tái)采用Visual Basic 6.0。Visual Basic是早期Basic語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái)的一種可視化的Windows平臺(tái)上的程序開發(fā)工具。最早的VB出現(xiàn)于1991年,即VB 1.0版本。它標(biāo)志著Microsoft開始將Basci語(yǔ)言向可視化編程方向發(fā)展,雖然它的功能極其有限,

10、但卻有跨時(shí)代的意義。伴隨著Windows操作平臺(tái)的不斷成熟,VB版本也不斷升級(jí)。從1991年秋季推出VB 2.0到1998年秋季推出VB 6.0,短短的幾年內(nèi)VB有了巨大的提高,也一步步更加完善。</p><p>  VB 6.0為滿足不同層次的用戶需要,提供了三個(gè)版本:學(xué)習(xí)版(Learning)、專業(yè)版(Professional)和企業(yè)版(Enterprise)。我們主要用的是專業(yè)版,專業(yè)版包括所有的內(nèi)部標(biāo)準(zhǔn)

11、控件以及網(wǎng)絡(luò)、表格和數(shù)據(jù)綁定等控件還包括ActiveX控件、Internet控件和Crystal Report Writer等開發(fā)工具,適用于專業(yè)開發(fā)人員。</p><p><b>  2.2 用戶界面</b></p><p>  該程序設(shè)計(jì)的界面如圖-3所示,風(fēng)格簡(jiǎn)潔。</p><p>  圖-3 程序設(shè)計(jì)的界面</p><

12、;p>  3.各模塊功能及軟件開發(fā)</p><p>  3.1 各模塊功能簡(jiǎn)介</p><p>  在該程序的設(shè)計(jì)中,要使用到以下常用控件,見表-1。</p><p><b>  表-1 常用控件</b></p><p><b>  常用控件簡(jiǎn)介</b></p><p&g

13、t;  窗體控件(Form):窗體(Form)是設(shè)計(jì)圖形用戶界面的基本平臺(tái),所有的控件都是繪制在窗體上的。程序運(yùn)行時(shí)的每一個(gè)窗體對(duì)應(yīng)于程序的一個(gè)窗口,是用戶與應(yīng)用程序交互操作的場(chǎng)所。</p><p>  文本框(TextBox):文本框是VB的一個(gè)重要控件,可用來(lái)顯示和輸入數(shù)據(jù)。實(shí)質(zhì)上,文本框控件相當(dāng)于一個(gè)簡(jiǎn)單的文本編輯器,它具有復(fù)制、剪切、粘貼和刪除等功能,只不過在文本框中只能輸入或顯示最大為32768字節(jié)(3

14、2KB)的字符串。</p><p>  標(biāo)簽框(Label): 標(biāo)簽的功能比較簡(jiǎn)單,通常用來(lái)顯示比較固定的提示性信息,不允許用戶在程序運(yùn)行時(shí)輸入數(shù)據(jù)。</p><p>  按鈕(Command): 命令按鈕是Windows 程序中常見的一種命令控制方式,用于接收用戶的操作信息,并引發(fā)應(yīng)用程序的某個(gè)操作。如同日常生活的按鈕一樣,當(dāng)用戶用鼠標(biāo)單擊命令按鈕或選中命令按鈕單擊<Enter

15、>回車鍵時(shí),就會(huì)激活相應(yīng)的事件過程,所以有時(shí)命令按鈕也簡(jiǎn)稱為“按鈕”。</p><p>  框架(Frame):框架是一種比較特殊的容器控件,常作為輔助性控件使用,可將多個(gè)選項(xiàng)按鈕或復(fù)選框控件按功能分組。當(dāng)用框架將多個(gè)控件劃分成一組時(shí),應(yīng)先在窗體上放置框架,然后再在框架控件內(nèi)放置其他控件。</p><p>  控件WinSock:</p><p>  該控件是

16、Windows下的應(yīng)用程序與網(wǎng)絡(luò)協(xié)議之間的標(biāo)準(zhǔn)接口。利用WinSock控件可以與遠(yuǎn)程計(jì)算機(jī)建立連接,并通過用戶數(shù)據(jù)文報(bào)協(xié)議 (UDP)或者傳輸控制協(xié)議 (TCP)進(jìn)行數(shù)據(jù)交換。這兩種協(xié)議都可以用來(lái)創(chuàng)建客戶與服務(wù)器應(yīng)用程序。與 Timer控件類似,WinSock控件在運(yùn)行時(shí)是不可見的。 </p><p>  在本設(shè)計(jì)中我們用到了以下幾個(gè)WINSOCK的屬性:</p><p>  1) PRO

17、TOCOL(控制協(xié)議)屬性,在本設(shè)計(jì)中,我們將PROTOCOL屬性設(shè)置為sckUDPProtocol。 </p><p>  2) 屬性RemoteHost是遠(yuǎn)程主機(jī)的地址,LocalPort、RemotePort分別本地主機(jī)的端口和遠(yuǎn)程主機(jī)端口,對(duì)客戶來(lái)說,該屬性指定發(fā)送數(shù)據(jù)的本地端口,而對(duì)于服務(wù)器來(lái)說,這是用于偵聽的本地端口,我們?cè)谠O(shè)置這兩個(gè)屬性時(shí)必須保證兩臺(tái)主機(jī)的端口值符合下面規(guī)則,即主機(jī)1的LocalPo

18、rt等于主機(jī)2的RemotePort值,同樣主機(jī)1的RemotePort等于主機(jī)2的LocalPort值,這樣才能保證兩機(jī)通訊的正常進(jìn)行。 </p><p>  3) LocalIP屬性用于返回本地機(jī)器的 IP地址,格式是IP地址加點(diǎn)的字符串 (xxx.xxx.xxx.xxx)。 </p><p>  在本設(shè)計(jì)中我們用到了以下幾個(gè)WINSOCK的方法: </p><p&

19、gt;  1) 在創(chuàng)建 UDP 應(yīng)用程序時(shí)調(diào)用了 Bind 方法,這是必須的。Bind 方法的作用是為控件“保留”一個(gè)本地端口。例如,如果將控件綁定到1001號(hào)端口,那么其它應(yīng)用程序?qū)⒉荒苁褂迷摱丝谶M(jìn)行“監(jiān)聽”。該方法阻止其它應(yīng)用程序使用同樣的端口。</p><p>  2) SendData方法用于發(fā)送一條數(shù)據(jù)給另一臺(tái)主機(jī),使用這個(gè)方法的語(yǔ)法是:WinSock.SendData [要發(fā)送的數(shù)據(jù)]</p&g

20、t;<p>  3) GetData方法。當(dāng)DataArrival事件出現(xiàn)時(shí),代碼調(diào)用GetData方法獲取數(shù)據(jù),并將數(shù)據(jù)存儲(chǔ)在字符串變量中。使用語(yǔ)法是:</p><p>  WinSock.GetData [接收數(shù)據(jù)的變量] </p><p>  在本設(shè)計(jì)中我們用到了以下WINSOCK的事件:</p><p>  DataArrival事件:在本設(shè)計(jì)

21、中我們使用了DataArrival事件,DataArrival事件在當(dāng)新數(shù)據(jù)到達(dá)時(shí)被觸發(fā)的事件,使用的語(yǔ)法為: </p><p>  WinSock1_DataArrival (bytesTotal As Long)        </p><p>  變量bytesTotal表示獲取的數(shù)據(jù)總數(shù)量。 </p><p>  在兩個(gè)WINSOCK控件中間發(fā)送數(shù)據(jù),關(guān)鍵

22、要完成以下三步:</p><p>  1、將RemoteHost屬性設(shè)置為另一臺(tái)計(jì)算機(jī)的IP地址。</p><p>  2、將RemotePort屬性設(shè)置為第二個(gè)控件的LocalPort屬性。</p><p>  3、調(diào)用Bind方法,指定使用的LocalPort。</p><p>  3.2 軟件開發(fā)流程</p><p&

23、gt;  以下介紹軟件的編制步驟:</p><p>  1.打開Visual Basic 6.0的集成開發(fā)環(huán)境,創(chuàng)建一個(gè)新的標(biāo)準(zhǔn)EXE文件。將缺省的窗體名修改為frmMain,并將其Caption屬性修改為“局域網(wǎng)聊天程序”。</p><p>  2. 在窗體中添加一個(gè)WinSock控件,在其“屬性”頁(yè)上,單擊“協(xié)議”,并將協(xié)議修改為sckUDPProtocol。爾后陸續(xù)添加其他控件(詳見

24、3.1節(jié)內(nèi)容),并修改其相應(yīng)的屬性。</p><p>  3.編寫代碼,由于代碼較長(zhǎng),這里不再展開敘述,詳見附錄。</p><p>  4.代碼編寫完成后,將程序生成“Chat.EXE”文件,到此該軟件開發(fā)完成。</p><p><b>  4.軟件調(diào)試分析</b></p><p>  將“Chat.EXE”程序,分別安

25、裝到局域網(wǎng)內(nèi)的兩臺(tái)計(jì)算機(jī)上,如圖-4所示。</p><p><b>  圖-4 程序調(diào)試圖</b></p><p>  按照?qǐng)D中的標(biāo)注,分別設(shè)置A、B兩臺(tái)計(jì)算機(jī)中Chat.exe程序的各項(xiàng)參數(shù)。然后點(diǎn)擊“連接”,連接成功后,在程序的狀態(tài)欄中會(huì)顯示“連接成功”字樣,此時(shí)聊天方可進(jìn)行。</p><p><b>  圖-5軟件調(diào)試圖<

26、/b></p><p><b>  5.設(shè)計(jì)心得</b></p><p>  這次課程設(shè)計(jì)的核心是熟練掌握VB語(yǔ)言,并將它運(yùn)用到網(wǎng)絡(luò)設(shè)計(jì)中。如何將課本中基本的程序代碼,正確靈活得運(yùn)用到實(shí)際程序當(dāng)中,并能夠使其發(fā)揮作用,保證程序的正常運(yùn)行是難點(diǎn)。</p><p>  在此次設(shè)計(jì)當(dāng)中,最常出現(xiàn)的問題就是當(dāng)運(yùn)用到哪個(gè)控件和代碼時(shí),有印象但必須借

27、助課本才能準(zhǔn)確書寫,又或者在某項(xiàng)任務(wù)中,不知該如何選擇程序,這都是基本功不扎實(shí)的表現(xiàn)。因此,反復(fù)鞏固vb語(yǔ)言的的基本知識(shí),多動(dòng)手多動(dòng)腦是學(xué)好vb語(yǔ)言的關(guān)鍵。</p><p>  通過這次課程設(shè)計(jì),對(duì)vb語(yǔ)言的實(shí)際應(yīng)用有了更加深刻的體驗(yàn),并且可以將他用到自己的其他專業(yè)課程中,這是學(xué)以致用的精髓體現(xiàn)。</p><p><b>  參考文獻(xiàn)</b></p>&

28、lt;p>  VB程序設(shè)計(jì) 胡 閆宏印。北京: 電子工業(yè)出版社,2006(宋體 五號(hào))</p><p>  計(jì)算機(jī)網(wǎng)絡(luò) 張?jiān)隽?李生元。西安: 西安交通大學(xué)出版社</p><p><b>  附 錄</b></p><p>  Option Explicit</p><p>  Private Ignore

29、Text As Boolean</p><p>  '------------------------------------------------------------------------------</p><p>  '當(dāng)CLEAR按鈕按下時(shí),清空TEXT1和TEXT2中的內(nèi)容</p><p>  Private Sub cmdClea

30、r_Click()</p><p>  On Error Resume Next</p><p>  Text1 = ""</p><p>  With Text2</p><p><b>  '清空輸入框</b></p><p>  .Text = " &q

31、uot;</p><p>  '并把焦點(diǎn)置于TEXT2</p><p><b>  .SetFocus</b></p><p><b>  End With</b></p><p><b>  End Sub</b></p><p>  '

32、;------------------------------------------------------------------------------</p><p>  '當(dāng)CONNECT按鈕按下時(shí),進(jìn)行以下操作</p><p>  Private Sub cmdConnect_Click()</p><p>  On Error GoTo Err

33、Handler</p><p>  With Winsock1</p><p>  '設(shè)置 RemoteHost 屬性</p><p>  .RemoteHost = Trim(txtRemoteIP)</p><p>  '設(shè)置 RemotePort 屬性</p><p>  'RemoteP

34、ort 屬性的值應(yīng)該等于 遠(yuǎn)程主機(jī)上的 LocalHost 屬性的值</p><p>  .RemotePort = Trim(txtRemotePort)</p><p>  'LocalPort 屬性的值是不能改變的,必須檢查它是否已經(jīng)被設(shè)置</p><p>  '如果 LocalPort 屬性為空(沒有被設(shè)置),將其設(shè)為在LocalPort輸入

35、框中輸入的數(shù)值</p><p>  If .LocalPort = Empty Then</p><p>  .LocalPort = Trim(txtLocalPort)</p><p>  Frame2.Caption = .LocalIP</p><p>  '這是必須的,Bind 方法的作用是為控件“保留”一個(gè)本地端口,防止被

36、其他用戶調(diào)用。</p><p>  .Bind.LocalPort</p><p><b>  End If</b></p><p><b>  End With</b></p><p>  '為了保證使用者不能改變LocalPort的值,將txtLocalPort輸入框鎖定</p&g

37、t;<p>  txtLocalPort.Locked = True</p><p>  '在狀態(tài)欄中顯示“正在連接”的狀態(tài)</p><p>  StatusBar1.Panels(1).Text = " Connected to " & Winsock1.RemoteHost & " </p><

38、p>  '如果連接正常,做以下設(shè)置</p><p>  Frame1.Enabled = True</p><p>  Frame2.Enabled = True</p><p>  Label4.Visible = True</p><p>  Text2.SetFocus</p><p><b&

39、gt;  Exit Sub</b></p><p>  '如果在連接過程中出現(xiàn)錯(cuò)誤,則轉(zhuǎn)向ErrHandler:,并顯示錯(cuò)誤提示</p><p>  ErrHandler:</p><p>  MsgBox "Winsock failed to establish connection with remote server",

40、 vbCritical</p><p><b>  End Sub</b></p><p>  '------------------------------------------------------------------------------</p><p>  '當(dāng)按下“F1”鍵時(shí)顯示幫助信息</p>

41、<p>  Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)</p><p>  If KeyCode = vbKeyF1 Then</p><p>  ChDir App.Path</p><p>  '調(diào)用外部程序notepad.exe來(lái)打開幫助文本文件</p&

42、gt;<p>  Shell "notepad.exe readme.txt", vbNormalFocus</p><p><b>  End If</b></p><p><b>  End Sub</b></p><p>  '------------------------

43、------------------------------------------------------</p><p>  '當(dāng)窗體加載時(shí)顯示提示信息并在 txtRemoteIP 框中顯示本地主機(jī)的IP</p><p>  Private Sub Form_Load()</p><p><b>  Show</b></p&g

44、t;<p>  MsgBox "Winsock UDT Chat" & vbCrLf & "by Theo Kandiliotis (ionikh@hol.gr)" & vbCrLf & vbCrLf & "F1 for help.", vbInformation</p><p>  txtRemot

45、eIP = Winsock1.LocalIP</p><p><b>  End Sub</b></p><p>  '------------------------------------------------------------------------------</p><p>  '接收TEXT2輸入框的按鍵,并

46、做響應(yīng)</p><p>  Private Sub Text2_KeyPress(KeyAscii As Integer)</p><p>  '定義變量 Last_Line_Feed 來(lái)記錄最后輸入行的位置</p><p>  Static Last_Line_Feed As Long</p><p>  '定義 New_L

47、ine 字符串記錄新鍵入的一行文本的內(nèi)容</p><p>  Dim New_Line As String</p><p>  '如果使用者按下CLEAR按鈕對(duì)輸入框內(nèi)容清空,這時(shí)TEXT2為空,則重設(shè)最后輸入行的位置為0</p><p>  If Trim(Text2) = vbNullString Then Last_Line_Feed = 0</

48、p><p>  '當(dāng)使用者按下ENTER鍵時(shí)</p><p>  If KeyAscii = 13 Then</p><p>  '取得最后輸入行的內(nèi)容并賦值給 New_Line 字符串</p><p>  New_Line = Mid(Text2, Last_Line_Feed + 1)</p><p>

49、  '重設(shè)最后輸入行的位置</p><p>  Last_Line_Feed = Text2.SelStart</p><p>  '通過 WINSOCK 發(fā)送新輸入的一行文本的內(nèi)容</p><p>  Winsock1.SendData New_Line</p><p>  '在狀態(tài)欄顯示發(fā)送信息</p>

50、<p>  StatusBar1.Panels(2).Text = " Sent " & (LenB(New_Line) / 2) & " bytes "</p><p><b>  End If</b></p><p><b>  End Sub</b></p>

51、;<p>  '------------------------------------------------------------------------------</p><p>  '當(dāng) WINSOCK 接收到新的數(shù)據(jù)(信息)時(shí),進(jìn)行以下響應(yīng)</p><p>  Private Sub Winsock1_DataArrival(ByVal byte

52、sTotal As Long)</p><p>  '定義 New_Text 字符串來(lái)記錄新接收的信息</p><p>  Dim New_Text As String</p><p>  '接收信息并賦值給 New_Text</p><p>  Winsock1.GetData New_Text</p><

53、;p>  '在TEXT1顯示框中顯示新接收到的信息</p><p>  Text1.SelText = New_Text</p><p>  Frame1.Caption = Winsock1.RemoteHostIP</p><p>  '在狀態(tài)欄中顯示接收信息</p><p>  StatusBar1.Panels(

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論