計算機網(wǎng)絡(luò)實驗報告(路由算法、Socket編程)_第1頁
計算機網(wǎng)絡(luò)實驗報告(路由算法、Socket編程)_第2頁
計算機網(wǎng)絡(luò)實驗報告(路由算法、Socket編程)_第3頁
計算機網(wǎng)絡(luò)實驗報告(路由算法、Socket編程)_第4頁
計算機網(wǎng)絡(luò)實驗報告(路由算法、Socket編程)_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、計算機網(wǎng)絡(luò)實驗報告班級:姓名:學(xué)號:實驗一一. 實驗?zāi)康募耙缶帉懗绦?模擬距離矢量路由算法的路由表交換過程,演示交換后的路由表的變化。二. 實驗原理距離矢量路由算法是這樣工作的:每個路由器維護一張路由表(即一個 矢量),它以網(wǎng)絡(luò)中的每個路由器為索引,表中列出了當(dāng)前已知的路由器到 每個目標(biāo)路由器的最佳距離,以及所使用的線路。通過在鄰居之間相互交換 信息,路由器不斷地更新他們的內(nèi)部路由表。舉例來說,假定使用延遲作為“距離”的度量標(biāo)準(zhǔn),并且該路由器發(fā)送 一個列表,其中包含了他到每一個目標(biāo)路由器的延時估計值;同時,他也從 每個鄰居路由器接收到一個類似的列表。假設(shè)一個路由器接收到來自鄰居x 的一個列表

2、,其屮x (i)表示x估計的到達(dá)路由器i所需要的時問。如果該 路由器知道他到x的延時為m毫秒,那么他也知道在x (i) 毫秒之間內(nèi)經(jīng) 過x可以到達(dá)路由器i。一個路由器針對每個鄰居都執(zhí)行這樣的計算,就可 以發(fā)現(xiàn)最佳的估計值,然后在新的路由器表中使用這個最佳的估計值以及對 應(yīng)的輸出路線。三源程序:#include "stdio.h"include "stdlib.h"#include "malloc.h"#inelude "graphics.h"#include "dos.h"#define ver

3、num 7typedef structint dis;int flag;int flag2;routnode;char tmp10;routnode datavernumvernum;void welcome();void lnitroutdata(file* pfile);void printroutdata();void sendlnf(int reev, int send);void exchange();int main()int start, end, i, j, m, n;file *pfile;welcome();pfile = fopen("l.txt,/ "

4、;r");訐(pfile = null)printf("the file wrong,press any key to come back.n"); getch();return;elseinitroutdata(pfile);fclose(pfile);printf("nthe original route table:n“);for (i = 0; i<vernum; i+)printf(”c|”,i + 65);for (j = 0;j< vernum; j+)if (dataij.dis > 0)printf("<

5、;%c %d> ", j + 65, dataij.dis); printf("nn);printroutdata();getch();for (i = 0;i< vernum; i+)for (m = 0; m < vernum; m+)for (n = 0; n< vernum; n+) datamn.flag = 0; exchange();printroutdata();getch();printf("nexchange the route table:n");return 0;void welcome()int gdri

6、ver=detect,gmode; registerbgidriver(egavga_driver);initgraph( &gdriver, &gmode,"c:win-tc"); cleardevice();setbkcolor(cyan);setviewport(0,0,639,479,1);clearviewport();setbkcolor(blue);setcolor(14);rectangle(200,200,440,280);setfillstyle(l,5);floodfill(300,240,14);settextstyle(0,0,2)

7、;outtextxy(50,30,"distance vector routing algorithm"); setcolor(15);settextstyle(l,0,4);outtextxy(260,214,"welcome to use!"); line(0,80,640,80);getch();delay(300);cleardevice();void lnitroutdata(file* pfile)char num10;int i = 0;char c;int m, n;fseek(pfile, 0, 0);for (m = 0; ifeof

8、(pfile) && m v 7; m+)for (n = 0; !feof(pfile) && n < 7; n+)while (ifeof(pfile)c = fgetc(pfile);if (c = 7)numi =、0; datam n.dis = atoi( num); datamn.flag = 0; datamn.flag = 0;i = 0;break;/*end of if*/else if(c>= 'o' && c<= 9) | c 二二'-*) nu mi+ = c;/*end of

9、 else if*/*end of while*/*end of for (n = 0*/*end of for (m = 0*/ void printroutdata()int i, j;for (i = 0;i< vernum; i+)settextstyle(l,0,3);sprintf(tmp," %c",i + 65);o uttextxy (i *80+50,130,t m p);outtextxy(10,160+i*40/tmp);for (j = 0; j< vernum; j+)for (i = 0;i< vernum; i+)if (d

10、ataij.dis <= 0&&i!=j)if(dataij.flag2 =1)setfillstyle(solid_fill,5);bar(80*i+50,40*j+155,80*i+120,40*j+185); delay(50000);dataij.flag2 =0;setfillstyle(solid_fill,3);bar(80*i+50,40*j+155,80*i+120/40*j+185); settextstyle(l,0,2);sprintf(tmp,"-n);outtextxy(80*i+65,40*j+165,tmp);elseif(dat

11、aij.dis >=0)if(dataij.flag2 =1)setfillstyle(s0lid_fill,5); bar(80*i+50/40*j+155/80*i+120/40*j+185); delay(50000);dataij.flag2 =0;setfillstyle(solid_fill,3); bar(80*i+50/40*j+155/80*i+120/40*j+185); settextstyle(l,0,2);sprintf(tmp,"%d",dataij.dis); outtextxy(80*i+65,40*j+165,tmp);/*end o

12、f for (j = 0*/*end of for (i = 0*/void sendlnf(int recv, int send)int i;for (i = 0;i< vernum; i+)訐(datasendi.dis > 0&& datasendi.flag!=l)if (datarecvi.dis <= 0&&recv!=i)datarecvi.dis = datase ndi.dis + datarecvs en d.dis; datarecvi.flag =1;datarecvi.flag2 =1;else if (datarec

13、vi.dis > datasendi.dis + datarecvsend.dis)datarecvi.dis = datase ndi.dis + datarecvse nd.dis; datarecvi.flag =1;datarecvi.flag2 =1;/*end of if*/*end of for*/void exchange()int i, j;for (i = o;i< vernum; i+)for (j = o;j< vernum; j+)if (dataij.dis > 0&& dataij.flag!=l) sendlnf(i, j

14、);/*end of if*/*end of for (j = 0*/*end of for (i = 0*/四、實驗心得體會通過本次實驗訓(xùn)練,我了解了距離矢量路由算法的基本原理,復(fù)習(xí)了c語言 編程的內(nèi)容,通過對路rti算法的實現(xiàn),加深了對路由表交換的理解。實驗二一、實驗?zāi)康募耙缶帉懗绦颍?lián)系socket編程和tcp/ip協(xié)議的應(yīng)用,要求實現(xiàn)server端和 client端的信息通信。二、實驗原理在tcp/ip編程中,為客戶端和服務(wù)器端提供相同的端口號和ip地址號,實現(xiàn)server端和client端互聯(lián),運用java文件流的知識,實現(xiàn)兩端的信息傳遞。三、源程序*import java.awt

15、.*;import java.awt.eve nt.*;import java.io.*;import java.i ooexcepti on;import .*;public class chatclient extends framesocket s = null;dataoutputstream dos = null; textfield tf = new textfield(); textarea ta = new textarea();public static void main(string args) new chatclient()aunchframe();public vo

16、id launchframe() setlocation(400,300); this.setsize(3oo,300); add(tfzborderlayout.south); add(ta,borderlayout.north);pack();tf.addactionliste ner(new 廿 liste ner();this.addwindowlistener(new windowadapter() public void windowclosing(windowevent e) disc onn();system.exit(o););setvisible(true);conn();

17、public void conn () trys = new socket("127.0.0.1,/5555);dos = new dataoutputstream(s.getoutputstream();system.out.println("客戶端連接成功! “); catch (unknownhostexception e) e.pri ntstacktrace(); catch (loexception e) e.pri ntstacktrace();public void disconn() trydos.closed;s.close(); catch (loex

18、ception e) e.pri ntstacktrace();private class tfliste ner impleme nts acti on listener public void actionperformed(actionevent e) string str = tf.gettext().trim(); ta.settext(str);tf.settext(,n);trydos.writeutf(str); dos.flushf); catch (loexception el) el.pri ntstacktrace();import java.i ooexception;import .*;import java.io.*;public class chatserver public static void main(string args) boolean started = false;tryserversocket ss = new serversocket(5555);started = true;while(started) boolean bconn = false;socket s = ss.accept();bconn 二 true;system.out. pri

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論