资源简介
来自university of Massachusetts的网络作业 框架是node0.c DVsim.h DVsim.c,其中有两个函数需要自己补充,根据自己具体的拓扑图要修改一些数据结构。
代码片段和文件信息
/*****************************************************************
* DVsim.c Distance Vector Routing Simulation Package
*
* Event driven simulation of distributed asynchronous
* distance vector routing. This file contains the network
* simulation code which emulates layer 2 and below:
*
* - simulates packet tranmissions between two
* physically connected nodes
*
* - assumes with no packet loss or corruption
*
* - calls initializations routines rtinit0 etc. before
* beginning simulation
*
*
* Original code from Kurose and Ross Computer Networking
*
* Modified by S. Dykes Apr. 2000
* 1. Changed RNG to use drand48() with seed = getpid()
* 2. Replaced 999 with INF
* 3. created common include file DVsim.h
* 4. extended to 6 node network
*
*---------------------------------------------------------------*/
#define DVSIM_H
#include “DVsim.h“
#include “time.h“
#define FROM_layer2 2
#define link_CHANGE 10
/*----------------------------------------
* Event list and possible events
*---------------------------------------*/
struct event
{
double evtime; /* event time */
int evtype; /* event type code */
int eventity; /* entity where event occurs */
struct rtpkt *rtpktptr; /* ptr to packet (if any) assoc w/ this event */
struct event *prev;
struct event *next;
};
struct event *evlist = NULL;
/*--------------------------------
* Simulation clock
*-------------------------------*/
double clocktime = 0.000;
double get_clock() { return clocktime; }
/*--------------------------------
* Function prototypes
*-------------------------------*/
void init();
void insertevent (struct event *);
void printevlist();
void tolayer2 (struct rtpkt );
/*-------------------------------
* MAIN
*-------------------------------*/
main()
{
int i;
struct event *eventptr;
/*----------------------------------------
* Loop until we run out of events
*---------------------------------------*/
init();
while (1)
{
/*----------------------------------------
* Get next event from top of list
* Done if event list is empty
*---------------------------------------*/
if (! (eventptr = evlist) ) break;
evlist = evlist->next;
if (evlist) evlist->prev=NULL;
/*----------------------------------------
* Trace info
*---------------------------------------*/
if (TRACE>1) {
printf(“\nMAIN: rcv event t=%.3f at %d“
eventptr->evtime eventptr->eventity);
if (eventptr->evtype == FROM_layer2 ) {
printf(“ src:%2d“ eventptr->rtpktptr->sourceid);
printf(“ dest:%2d“ eventptr->rtpktptr->destid);
printf(“ contents: “);
for (i=0; irtpktptr->mincost[i]);
printf(“\n“);
}
}
/*----------------------------------------
* Update clock to next event time
*-----------------------------
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2421 2009-11-18 12:51 node3.c
文件 11669 2009-11-18 12:21 DVsim.c
文件 2812 2009-11-18 12:43 DVsim.h
文件 3967 2009-11-18 12:33 node0.c
文件 2421 2009-11-18 12:51 node1.c
文件 2583 2009-11-18 12:51 node2.c
----------- --------- ---------- ----- ----
25873 6
- 上一篇:MFC DEM内插登高线!!!
- 下一篇:迷宫问题的C++算法实现
相关资源
- 用c语言写的OBB旋转及碰撞检测源代码
- 用C语言编写的usb自动识别程序
- 基于51单片机的12864液晶显示C语言源程
- 分治法求格雷码的C语言代码
- C语言C++魔兽全图源码
- linux环境下C语言编程指南 源代码
- 上传的p2p技术C语言源码
- 连连看C语言小游戏开发源代码
- 磁盘调度算法(c语言)44989
- 音乐跑马灯C语言程序
- bpsk的C语言代码
- 用回溯法解决01背包问题C语言实现
- Linux GTK 聊天室 MySql C语言聊天室
- 单片机流水灯C语言
- C语言版本的DES加密解密算法代码!(
- 连连看 C语言 源代码
- spath(A*算法的C语言源代码)
- 银行家算法C语言实现源文件
- C语言程序设计,谭浩强,清华大学,
- 基于51单片机多节点RS485通信带Protue
- c语言描述超松弛算法的源代码
- 最简单的PI算法(C语言)-用于控制电
- 专升本C语言
- 实序列快速傅里叶变换C语言源代码
- xrc C语言解释器
- udp 聊天室 基于linux c语言实现
- 单片机 抢答器 C语言
- c语言图书管理系统源码 c语言图书管
- 用c语言编写成绩管理系统
- C语言完成NTFS系统的文件定位和打印簇
评论
共有 条评论