资源简介
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
相关资源
- ATM自动取款机(JAVA课程)基本功能实
- java实现的QQ登录界面
- java词频统计
- 搜索引擎的研究与实现Java附源码
- java 原创 坦克大战 源码 带有详细注释
- 日历时钟java版实现
- java 记事本(功能较全面且界面美观)
- 内容丰富的java电子琴
- java做的世界杯程序
-
Java Jfr
ame简单聊天程序 - 飞机订票系统(java)
- 采用JAVA编写VORONOI图
- java sql2000员工管理系统数据库、文档
-
Java ba
se64编码和解码 - java笔试题汇总及答案(另附各大公司
- java版多人聊天室
- java小作业 人事管理系统
- 电话本(Java编写的在控制台上运行)
- java端口扫描程序
- java web网络通讯录
- Java课程设计(15个经典案例)
- java实现POS系统源码
- 俄罗斯方块具体设计(Java描述)带详
- 用JAVA做的通讯录(精简版)
- java数据库版学生成绩管理系统
- 基于java聊天室(gui)
- Java版聊天程序(UDP TCP 多线程)
-
java操作xm
l文件的一个简单代码 - 简单qq聊天(Java socket实现)
- java多人五子棋源码
评论
共有 条评论