計算機(jī)的網(wǎng)絡(luò)實驗五_第1頁
計算機(jī)的網(wǎng)絡(luò)實驗五_第2頁
計算機(jī)的網(wǎng)絡(luò)實驗五_第3頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、廣州大學(xué)學(xué)生實驗報告開課學(xué)院及實驗室:計算機(jī)學(xué)院,電子信息樓416A室 2014年12月10日學(xué)院計算機(jī)科學(xué)與教育軟件學(xué)院年級/專業(yè)/班計科122姓名龐彬?qū)W號1206100022實驗課程名稱計算機(jī)網(wǎng)絡(luò)實驗成績實驗項目名稱實驗五:網(wǎng)絡(luò)程序設(shè)計指導(dǎo)老師劉淼、實驗?zāi)康耐ㄟ^編程理解網(wǎng)橋的功能及計算機(jī)如何處理一個文件的16位校驗和、實驗環(huán)境裝有JDK環(huán)境和Eclipse的電腦一臺、實驗內(nèi)容寫一個程序來模擬網(wǎng)橋功能。模擬實現(xiàn)網(wǎng)橋的轉(zhuǎn)發(fā)功能,以從文件中讀取幀模擬網(wǎng)橋從網(wǎng)絡(luò)中收到一幀,即從 兩個文件中讀入一系列幀,從第一個文件中讀入一幀然后從第二個文件中再讀入 一幀,如此下去。對每一幀,顯示網(wǎng)橋是否會轉(zhuǎn)發(fā)。要

2、求:Windows或Linux環(huán)境下運(yùn)行,程序應(yīng)在單機(jī)上運(yùn)行。分析:用程序模擬網(wǎng)橋功能,可以假定用兩個文件分別代表兩個網(wǎng)段上的網(wǎng)絡(luò)幀 數(shù)據(jù)。而兩個文件中的數(shù)據(jù)應(yīng)具有幀的特征,即有目的地址,源地址和幀內(nèi)數(shù)據(jù)。 程序交替讀入幀的數(shù)據(jù),就相當(dāng)于網(wǎng)橋從網(wǎng)段中得到幀數(shù)據(jù),當(dāng)然如果模擬的數(shù) 據(jù)量比較少,也可以用兩個數(shù)組代替兩個文件存放幀數(shù)據(jù),同樣達(dá)到代表兩個網(wǎng) 段上的幀數(shù)據(jù)的效果。對于網(wǎng)橋來說,能否轉(zhuǎn)發(fā)幀在于把接收到的幀與網(wǎng)橋中的轉(zhuǎn)發(fā)表相比較。 判斷目 的地址后才決定是否轉(zhuǎn)發(fā)。由此可見轉(zhuǎn)發(fā)的關(guān)鍵在于構(gòu)造轉(zhuǎn)發(fā)表。 這里轉(zhuǎn)發(fā)表可 通過動態(tài)生成。四、實驗步驟、記錄和結(jié)果(一)寫一個程序來模擬網(wǎng)橋功能1、實驗程序

3、如下 import ;public class Bridge public static void main(String args) /接口 1中存在ABCDEFStri ng str1 = "AB", "CA", "DB", "DA", "AH", "CB", "DN", "DC","BC","AC", "EF","FE" ;/接口 2中存在GHIMNO

4、Stri ng str2 = "GF", "HA", "NB", "OH", "NG", "GN", "HF","GC", "HA","GE", "OC", " " ;/將字符串strl與str2交替存放在字符串si中String s1 = new String100;int q = 0, p = 0;for (int a = 0; a < 100;

5、a+) /在字符串中偶數(shù)的存放str1if (a % 2 = 0 && q < strl.le ngth) s1a = str1q;q+;/在字符串中奇數(shù)的存放str2if (a % 2 != 0 && q < str2ength) sia = str2p;p+;String bridge = new String100;/ 建立網(wǎng)橋,數(shù)組可以存儲 100個地址bridge0 = new String("as");/首先建立第一任意的地址形式,以便以后調(diào)用復(fù)制int m = 0;int flag2 = 0;/循環(huán)調(diào)用字符串?dāng)?shù)組si

6、的地址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)檢查第一個發(fā)送地址是否在網(wǎng)橋的轉(zhuǎn)換表上flag2 = 0;for (int b = 0; bridgeb != null ; b+)初始char bridge3 = br

7、idgeb.toCharArray();化目的地址/比較目的地址是否在轉(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 ;/跳出第一個for循環(huán)else if (bridge21 = '1')System. out .println(s1i + " 由接口2轉(zhuǎn)發(fā)");break ;else System. out .p

8、rintln(s1i + " 由接口1轉(zhuǎn)發(fā)");break ;else flag2=1;/目的地址不存在轉(zhuǎn)換表標(biāo)志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 str = new StringB

9、uffer(s1i);String no;if (i % 2 = 0) /i 為雙數(shù)存儲為接口在1上no = "1" else no = "2"/i為單數(shù)存儲為接口在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) /判斷是否使地址添加到網(wǎng)橋到flag

10、= 1; /判斷使地址添加到網(wǎng)橋到標(biāo)志if (flag != 1) bridgem = ss;/地址轉(zhuǎn)換表中不存在,加進(jìn)發(fā)地址和接口號char new_ss = ss.toCharArray();if (m < 99) m+;bridgem = new String("33");動態(tài)增加網(wǎng)橋數(shù)組,加1int j1 = 0;Stri ng mude_ss = "33"for (j1 = 0; bridgej1 != null ; j1+) / 判斷目的地址是否存在地址中char wangqiao5 = bridgej1.toCharArray();i

11、f (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 (n ew_ss1=n ew_mude1)System. out.pri ntl n( s1i + "不轉(zhuǎn)發(fā)");else System. out.pri ntl n( s1i + "由接口 &quo

12、t; +n ew_mude1+ "轉(zhuǎn)發(fā)");else /判斷目的地址由哪個接口轉(zhuǎn)發(fā)if (n ew_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、實驗結(jié)果如圖1所示。:Protalerm Javadoc ?。籇eclairatjcn 旦 Co ns ole £3 K<

13、;"rFnninatFd B-idgp Jaua Applicatiion C!?rogrsm FiJsrvs>jrFbin-avatw.yp-(?! 3-1J-15 上二11:訶47)AB由接口 2轉(zhuǎn)發(fā)GF由摟口 1CA不轉(zhuǎn)發(fā)HA由擺口 1轉(zhuǎn)發(fā)DB由接口 2轉(zhuǎn)發(fā)NB由援匚1DA不諾岌OH不詳發(fā)AH由按匚2話發(fā)IVG不轉(zhuǎn)叢CB由據(jù)匚2轉(zhuǎn)發(fā)GN不轉(zhuǎn)發(fā)DN由撞口 2樣發(fā)HF由摟匚1DC不轉(zhuǎn)發(fā)GC由接廠1BC不轉(zhuǎn)發(fā)HA由接口 1AC不轉(zhuǎn)發(fā)6f由播口 1EF由揍匚2轉(zhuǎn)發(fā)OC由接匚1Ft不轉(zhuǎn)蠱圖13、程序流程圖如圖2所示開始圖24、實驗程序分析如下。模擬網(wǎng)橋?qū)嶒炇紫仍O(shè)置兩個數(shù)組存放數(shù)據(jù),

14、 數(shù)據(jù)具有幀的特征,即有目的地 址,源地址和幀內(nèi)數(shù)據(jù)。然后程序交替讀入幀的數(shù)據(jù),即網(wǎng)橋先讀網(wǎng)段1發(fā)來的 第一幀,再讀入網(wǎng)段2的第一幀。對讀進(jìn)來的幀進(jìn)行分析,先判別源地址是否存 在于網(wǎng)橋轉(zhuǎn)發(fā)表中,若果在則進(jìn)入第一個循環(huán)模塊,再判別目標(biāo)地址是否在轉(zhuǎn)發(fā) 表中,最后輸出數(shù)據(jù)由哪個接口轉(zhuǎn)發(fā)。如果源地址不在轉(zhuǎn)發(fā)表中,要把這個源地 址和所對應(yīng)接口寫入網(wǎng)橋的轉(zhuǎn)發(fā)表中, 在進(jìn)行其他判別。由此可見轉(zhuǎn)發(fā)的關(guān)鍵在 于構(gòu)造轉(zhuǎn)發(fā)表,這里轉(zhuǎn)發(fā)表是動態(tài)生成的。5、實驗過程中的難點(diǎn)和待解決問題該實驗難點(diǎn)在于編寫調(diào)用網(wǎng)橋數(shù)組中的地址的那個循環(huán)里,其實質(zhì)是判斷源地址是否在網(wǎng)橋轉(zhuǎn)放表中,在實驗過程中,沒有注意到將源地址和目的地址是否 存在在轉(zhuǎn)發(fā)表中打下標(biāo)記,導(dǎo)致程序無法運(yùn)行。經(jīng)過思考,在程序中加上了 flag2 和flag3兩個變量,解決了這個問題。此程序使用靜態(tài)字符串?dāng)?shù)組存放網(wǎng)橋轉(zhuǎn)發(fā)的信息,如果將程序修改成使用動 態(tài)集合ArrayList完成的話,會更加符合現(xiàn)實網(wǎng)橋的轉(zhuǎn)發(fā)。若能做成 GUI界面, 實驗會更加直觀。六、實驗總結(jié)1本次實驗是由C平臺

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論