




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)用標(biāo)準(zhǔn)文案廣州大學(xué)學(xué)生實(shí)驗(yàn)報(bào)告開課學(xué)院及實(shí)驗(yàn)室: 計(jì)算機(jī)學(xué)院,電子信息樓 416A 室 2014 年 12 月 10 日學(xué)院計(jì)算機(jī)科學(xué)與教育軟件學(xué)院年級(jí)/專業(yè)/班計(jì)科122姓名龐彬?qū)W號(hào)1206100022實(shí)驗(yàn)課程名稱計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)成績(jī)實(shí)驗(yàn)項(xiàng)目名稱實(shí)驗(yàn)五:網(wǎng)絡(luò)程序設(shè)計(jì)指導(dǎo)老師劉淼、實(shí)驗(yàn)?zāi)康耐ㄟ^編程理解網(wǎng)橋的功能及計(jì)算機(jī)如何處理一個(gè)文件的 16 位校驗(yàn)和、實(shí)驗(yàn)環(huán)境裝有 JDK 環(huán)境和 Eclipse 的電腦一臺(tái)、實(shí)驗(yàn)內(nèi)容寫一個(gè)程序來模擬網(wǎng)橋功能。模擬實(shí)現(xiàn)網(wǎng)橋的轉(zhuǎn)發(fā)功能, 以從文件中讀取幀模擬網(wǎng)橋從網(wǎng)絡(luò)中收到一幀, 即從兩個(gè)文件中讀入一系列幀, 從第一個(gè)文件中讀入一幀然后從第二個(gè)文件中再讀入一幀,
2、如此下去。對(duì)每一幀,顯示網(wǎng)橋是否會(huì)轉(zhuǎn)發(fā)。精彩文檔實(shí)用標(biāo)準(zhǔn)文案要求: Windows 或 Linux 環(huán)境下運(yùn)行,程序應(yīng)在單機(jī)上運(yùn)行。 分析:用程序模擬網(wǎng)橋功能, 可以假定用兩個(gè)文件分別代表兩個(gè)網(wǎng)段上的網(wǎng)絡(luò)幀 數(shù)據(jù)。而兩個(gè)文件中的數(shù)據(jù)應(yīng)具有幀的特征, 即有目的地址, 源地址和幀內(nèi)數(shù)據(jù)。 程序交替讀入幀的數(shù)據(jù), 就相當(dāng)于網(wǎng)橋從網(wǎng)段中得到幀數(shù)據(jù), 當(dāng)然如果模擬的數(shù) 據(jù)量比較少, 也可以用兩個(gè)數(shù)組代替兩個(gè)文件存放幀數(shù)據(jù), 同樣達(dá)到代表兩個(gè)網(wǎng) 段上的幀數(shù)據(jù)的效果。對(duì)于網(wǎng)橋來說, 能否轉(zhuǎn)發(fā)幀在于把接收到的幀與網(wǎng)橋中的轉(zhuǎn)發(fā)表相比較。 判斷目 的地址后才決定是否轉(zhuǎn)發(fā)。 由此可見轉(zhuǎn)發(fā)的關(guān)鍵在于構(gòu)造轉(zhuǎn)發(fā)表。 這里
3、轉(zhuǎn)發(fā)表可 通過動(dòng)態(tài)生成。四、實(shí)驗(yàn)步驟、記錄和結(jié)果一)寫一個(gè)程序來模擬網(wǎng)橋功能1、實(shí)驗(yàn)程序如下 import java.util.*;public class Bridge public static void main(String args) / 接口1中存在 ABCDEFString str1 = AB, CA, DB, DA, AH, CB, DN, DC,BC,AC, EF,FE ;/ 接口2中存在 GHIMNOString str2 = GF, HA, NB, OH, NG, GN, HF, GC, HA,GE, OC, ;精彩文檔實(shí)用標(biāo)準(zhǔn)文案/ 將字符串 str1與str2 交替存
4、放在字符串 s1中String s1 = new String100;int q = 0, p = 0;for (int a = 0; a 100; a+) / 在字符串中偶數(shù)的存放 str1if (a % 2 = 0 & q str1.length) s1a = str1q;q+;/ 在字符串中奇數(shù)的存放 str2if (a % 2 != 0 & q str2.length) s1a = str2p;p+;String bridge = new String100;/ 建立網(wǎng)橋,數(shù)組可以存儲(chǔ) 100個(gè)地址bridge0 = new String(as);/ 首先建立第一任意的地址形式,以精彩
5、文檔實(shí)用標(biāo)準(zhǔn)文案便以后調(diào)用復(fù)制int m = 0;int flag2 = 0;/ 循環(huán)調(diào)用字符串?dāng)?shù)組 s1的地址for (int i = 0; s1i != null ; i+)char k = s1i.toCharArray();/ 將字符串 s1i 轉(zhuǎn)換為字符,以便調(diào)用源地址和目的地址/ 循環(huán)調(diào)用網(wǎng)橋數(shù)組中的地址, 判斷源地址是否在網(wǎng)橋轉(zhuǎn)發(fā)表中 for (int j = 0; bridgej != null ; j+)char bridge2 = bridgej.toCharArray();/ 初始化源地 址if (k0 = bridge20)/檢查第一個(gè)發(fā)送地址是否在網(wǎng)橋的轉(zhuǎn)換表上fla
6、g2 = 0;for (int b = 0; bridgeb !=null ; b+)初始char bridge3 = bridgeb.toCharArray();/精彩文檔實(shí)用標(biāo)準(zhǔn)文案化目的地址/ 比較目的地址是否在轉(zhuǎn)換表 bridge 中if (k1 = bridge30)flag2 = 0;/ 目的地址存在轉(zhuǎn)換表標(biāo)志/ 判斷源地址是否與目的地址相同, 相同不轉(zhuǎn)發(fā)if (bridge21 = bridge31) System. out .println(s1i + 不轉(zhuǎn)發(fā) );break ;/ 跳出第一個(gè) for 循環(huán)else if (bridge21 = 1)System. out .p
7、rintln(s1i + 由接口2 轉(zhuǎn)發(fā) );break ;else System. out .println(s1i + 由接口1 轉(zhuǎn)發(fā) );break ;else flag2=1;/ 目的地址不存在轉(zhuǎn)換表標(biāo)志精彩文檔實(shí)用標(biāo)準(zhǔn)文案if (flag2 = 1) flag2 = 0;if (bridge21 = 1) System. out .println(s1i + 由接口 2 轉(zhuǎn)發(fā) );/ 源地址與目的地址不相同,轉(zhuǎn)發(fā)break ; else System. out .println(s1i + 由接口 1 轉(zhuǎn)發(fā) );/ 源地址與目的地址不相同,轉(zhuǎn)發(fā)break ;StringBuffer
8、str = new StringBuffer(s1i);String no;if (i % 2 = 0) /i 為雙數(shù)存儲(chǔ)為接口在 1 上 no = 1; else 精彩文檔實(shí)用標(biāo)準(zhǔn)文案no = 2;/i 為單數(shù)存儲(chǔ)為接口在 2上str.replace(1, 2, no);String ss = str.toString();int flag = 0;/ 判斷使地址添加到網(wǎng)橋到標(biāo)志int flag3 = 0;/ 判斷目的地址存在地址中標(biāo)志,在即使 flag3=1for (int j = 0; bridgej != null ; j+) if (ss.equals(bridgej) / 判斷是否
9、使地址添加到網(wǎng)橋到 flag = 1; / 判斷使地址添加到網(wǎng)橋到標(biāo)志if (flag != 1) bridgem = ss;/ 地址轉(zhuǎn)換表中不存在, 加進(jìn)發(fā)地址和接口 號(hào)char new_ss = ss.toCharArray();if (m 99) m+;bridgem = new String(33);/ 動(dòng)態(tài)增加網(wǎng)橋數(shù)組,加1int j1 = 0;精彩文檔實(shí)用標(biāo)準(zhǔn)文案String mude_ss = 33;for (j1 = 0; bridgej1 !=null ; j1+) / 判斷目的地址是否存在地址中char wangqiao5 = bridgej1.toCharArray();
10、if (k1 = wangqiao50) flag3 = 1; / 判斷目的地址存在地址中標(biāo)志,在即使flag3=1發(fā)。不相同轉(zhuǎn)發(fā)mude_ss = bridgej1; / 復(fù)制目的地址和接口char new_mude = mude_ss.toCharArray();if (flag3 = 1) / 判斷目的地址與源地址中接口是否相同, 相同不轉(zhuǎn),目的地址不在一樣轉(zhuǎn)發(fā)if (new_ss1 =new_mude1)System. out.println(s1i + 不轉(zhuǎn)發(fā) );else System. out.println(s1i + 由接口 +new_mude1+ 轉(zhuǎn)發(fā));精彩文檔實(shí)用標(biāo)準(zhǔn)文
11、案else / 判斷目的地址由哪個(gè)接口轉(zhuǎn)發(fā)if (new_ss1 = 1) System. out .println(s1i + 由接口 + 2 轉(zhuǎn)發(fā));/ 由接口 2轉(zhuǎn)發(fā)else System. out .println(s1i + 由接口 + 1 轉(zhuǎn)發(fā));/ 由接口 1轉(zhuǎn)發(fā)2、實(shí)驗(yàn)結(jié)果如圖 1 所示。精彩文檔實(shí)用標(biāo)準(zhǔn)文案圖13、程序流程圖如圖 2 所示精彩文檔實(shí)用標(biāo)準(zhǔn)文案開始圖24、實(shí)驗(yàn)程序分析如下。模擬網(wǎng)橋?qū)嶒?yàn)首先設(shè)置兩個(gè)數(shù)組存放數(shù)據(jù), 數(shù)據(jù)具有幀的特征, 即有目的地 址,源地址和幀內(nèi)數(shù)據(jù)。 然后程序交替讀入幀的數(shù)據(jù), 即網(wǎng)橋先讀網(wǎng)段 1 發(fā)來的 第一幀,再讀入網(wǎng)段 2 的第一幀。 對(duì)讀
12、進(jìn)來的幀進(jìn)行分析, 先判別源地址是否存 在于網(wǎng)橋轉(zhuǎn)發(fā)表中, 若果在則進(jìn)入第一個(gè)循環(huán)模塊, 再判別目標(biāo)地址是否在轉(zhuǎn)發(fā) 表中,最后輸出數(shù)據(jù)由哪個(gè)接口轉(zhuǎn)發(fā)。 如果源地址不在轉(zhuǎn)發(fā)表中, 要把這個(gè)源地 址和所對(duì)應(yīng)接口寫入網(wǎng)橋的轉(zhuǎn)發(fā)表中, 在進(jìn)行其他判別。 由此可見轉(zhuǎn)發(fā)的關(guān)鍵在 于構(gòu)造轉(zhuǎn)發(fā)表,這里轉(zhuǎn)發(fā)表是動(dòng)態(tài)生成的。5、實(shí)驗(yàn)過程中的難點(diǎn)和待解決問題精彩文檔實(shí)用標(biāo)準(zhǔn)文案該實(shí)驗(yàn)難點(diǎn)在于編寫調(diào)用網(wǎng)橋數(shù)組中的地址的那個(gè)循環(huán)里, 其實(shí)質(zhì)是判斷源 地址是否在網(wǎng)橋轉(zhuǎn)放表中, 在實(shí)驗(yàn)過程中, 沒有注意到將源地址和目的地址是否 存在在轉(zhuǎn)發(fā)表中打下標(biāo)記, 導(dǎo)致程序無法運(yùn)行。 經(jīng)過思考,在程序中加上了 flag2 和 flag3 兩個(gè)變量,解決了這個(gè)問題。此程序使用靜態(tài)字符串?dāng)?shù)組存放網(wǎng)橋轉(zhuǎn)發(fā)的信息, 如果將程序修改成使用動(dòng) 態(tài)集合 ArrayList 完成的話,會(huì)更加符合現(xiàn)實(shí)網(wǎng)橋的轉(zhuǎn)發(fā)。若能做成 GUI 界面, 實(shí)驗(yàn)會(huì)更加直觀。六、實(shí)驗(yàn)總結(jié)1. 本次實(shí)驗(yàn)是由 C 平臺(tái)來編寫的,在實(shí)驗(yàn)過程中,對(duì)網(wǎng)橋的工作原理和 16位校驗(yàn)和的計(jì)算方法有了更深一步的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 戰(zhàn)略投資與風(fēng)險(xiǎn)評(píng)估方式試題及答案
- 法學(xué)概論考試中的選擇題技巧與試題及答案
- 行政法學(xué)的歷史與發(fā)展及試題
- 軟件設(shè)計(jì)師備考常見問題將解答試題及答案
- 加強(qiáng)公司財(cái)務(wù)內(nèi)控的工作計(jì)劃
- 隨州市隨縣事業(yè)單位2025年統(tǒng)一公開招聘筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 硬件接口設(shè)計(jì)基礎(chǔ)知識(shí)試題及答案
- 行政管理考試知識(shí)體系建立:試題及答案
- 分布式系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)能力測(cè)試試題及答案
- 重要信息處理軟件試題及答案參考
- 2025年河北省秦皇島市海港區(qū)中考一模數(shù)學(xué)試卷(原卷版+解析版)
- 2025年注冊(cè)測(cè)繪師考試測(cè)繪地理信息數(shù)據(jù)處理與應(yīng)用試題
- 二手車貨車合同協(xié)議書
- 2024-2025部編版小學(xué)道德與法治二年級(jí)下冊(cè)期末考試卷及答案
- 測(cè)井試題及答案完整版
- 人格性格測(cè)試題及答案
- 2025-2030年中國(guó)電子變壓器市場(chǎng)運(yùn)行前景及投資價(jià)值研究報(bào)告
- 中西文化鑒賞知到章節(jié)答案智慧樹2023年鄭州大學(xué)
- 鐵路貨車運(yùn)用常見故障講課講稿
- 公共場(chǎng)所重大活動(dòng)衛(wèi)生監(jiān)督工作規(guī)范模板
- 大學(xué)計(jì)算機(jī)python選擇填空題庫(kù)及答案
評(píng)論
0/150
提交評(píng)論