您的位置:首页 >> 编程开发 >> Visual C++ >> 正文
Visual C++ RSS
 

路由模拟——设计方案的实现(6)

http://www.rdxx.com 02年05月17日 11:36 互联网 我要投稿

关键词: 模拟 , 方案 , 设计 , 路由

 

 

五,路由过程

         本实现部分为整个系统执行时序的表现,如果与通信模拟系统整合,本部分是不需要的。所以这部分是为单独调试而写的。为了检验路由模拟系统,写了一个单数据包路由的过程。但语义基本上是完整的。如果在通信模拟系统里实现这一部分,可以同步详尽的扩充设计。

 

1,单数据包路由

方法名称:              Communication::SingleDataRout

方法参数:            

返回值:              

方法的目的:           实现单个数据包由创建到路由成功的全过程,期间可能会有若干次的网络重建。

可能的出错:          

// 单数据包路由

void Communication::SingleDataRout(void)

{

     //局部变量

     int index=0,number=0;

     char ch;

     bool bWriteSucc=true;

     NetData *pNetData=NULL;

Loop:

     //发送若干数据包后,自动检测网络是否已经发生改变;如果已经改变,

     //则重新获得网络信息并创建之。

     if(number==0)

          net.ReCreate();

     net.RoutComputeBuilder();

     //index记录数据包的源路由器标号

     index=net.MakeData();

    

     pNetData=(pNodeArray+index)->pRout->NetReadData();

 

     while(pNetData!=NULL)

     {//该数据包进行路由过程

          if(pNetData->IsMessage())

         {//应答消息

              index = net.GetRoutID(pNetData->GetNextHop());

              bWriteSucc=(pNodeArray+index)->pRout->NetWriteData(*pNetData);

              //涌塞则等待;完善的涌塞处理方案另外实现。

              if(!bWriteSucc)

                   continue;

              index = net.GetRoutID(pNetData->GetPreHop());

         }else if(!pNetData->IsMessage())

         {//网络数据包

              index = net.GetRoutID(pNetData->GetNextHop());

              bWriteSucc=(pNodeArray+index)->pRout->NetWriteData(*pNetData);

9 7 3 1 2 4 8 :


 
 
标签: 模拟 , 方案 , 设计 , 路由 打印本文
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved
收藏本页
收藏本站