• 大小: 6.26 KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-10-16
  • 语言: Java
  • 标签: JAVA  最短路径  

资源简介

Java平台上的距离向量路由协议的模拟程序。提供给定的配置文件(ConfigA.txt,包含相邻路由的端口号和距离)时,自动计算出网络中到达各个路由的距离。当路由挂起或关闭时,其它路由可以检测到路由点的消失并重新计算距离

资源截图

代码片段和文件信息

import java.io.*;
import java.net.*;

class dv_routing{
static int maxNodeNumber=30;// the maximum possible node number in the network
static int basicPauseTime=1000;
public static void main(String[] args){

//thread sending part
class sendUDP extends Thread{
private int sendCount=0;
private int neighborCount=0;
private char myName;
private int myPort;

private int sendPortList[]=new int[maxNodeNumber];

private char sendNodeList[]=new char[maxNodeNumber];
private int sendMinList[]=new int[maxNodeNumber];

private char buffNodeList[]=new char[maxNodeNumber];
private int buffMinList[]=new int[maxNodeNumber];

private char sendSentence[]=new char[1024];
private String sendString;
private byte sendByte[];

public void setMyName(char name){
myName=name;
}

public void setMyPort(int port){
myPort=port;
}


public void setCount(int myCount){
sendCount=myCount;
//System.out.println(sendCount);
}

public void setNeighbor(int myNeighbor){
neighborCount=myNeighbor;
}

public void setNode(char myNodeList[]){
sendNodeList=myNodeList;
}

public void setPort(int myPortList[]){
sendPortList=myPortList;
}

public void setMin(int myMinList[]){
sendMinList=myMinList;
}

public int[] getMin(){
return sendMinList;
}

public void run(){
try{
DatagramSocket sendSocket = new DatagramSocket();
while(true){
sendSentence=new char[1024];//reset

//sendSentence: A 2 B 0001 C 0002 z

//A
int cursor=0;
//System.out.println(myName);
sendSentence[cursor]=myName;

//2
cursor=1;
//System.out.println(sendCount+“ “+(char)sendCount);
sendSentence[cursor]=(char)(sendCount+48);

buffNodeList=new char[maxNodeNumber];
buffMinList=new int[maxNodeNumber];

buffNodeList=sendNodeList;
buffMinList=sendMinList;

cursor=2;
String hexString=null;
char hexChar[]=new char[4];

//B 0002
for(int j=0; j //B
sendSentence[cursor]=buffNodeList[j];
cursor++;

//0002
hexString=Integer.toHexString(buffMinList[j]);

//000
for(int k=0; k<4-hexString.length(); k++){
sendSentence[cursor]=‘0‘;
cursor++;
}

//2
for(int k=0;k sendSentence[cursor]=hexString.charAt(k);
cursor++;
}

}

//z
sendSentence[cursor]=‘z‘;//simple terminate check

sendByte=null;
sendString=null;
sendString=String.valueOf(sendSentence);
sendByte=sendString.getBytes();



InetAddress IPAddress=InetAddress.getLocalHost();

for(int i=0; i int tarPort=se

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件         20  2014-05-07 20:40  configF.txt

     文件      25504  2014-06-05 21:54  dv_routing.java

     文件         30  2014-06-04 20:06  configA.txt

     文件         29  2014-06-04 20:06  configB.txt

     文件         48  2014-06-04 20:06  configC.txt

     文件         38  2014-06-04 20:07  configD.txt

     文件         29  2014-05-07 20:40  configE.txt

----------- ---------  ---------- -----  ----

                25698                    7


评论

共有 条评论