VC语言

本类阅读TOP10

·VC++ 学习笔记(二)
·用Visual C++打造IE浏览器(1)
·每个开发人员现在应该下载的十种必备工具
·教你用VC6做QQ对对碰外挂程序
·Netmsg 局域网聊天程序
·Windows消息大全
·VC++下使用ADO编写数据库程序
·VC++学习笔记(四)
·非法探取密码的原理及其防范
·怎样在VC++中访问、修改注册表

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
路由模拟——设计方案的实现(6)

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

 

 

五,路由过程

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

 

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);

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

              if(!bWriteSucc)

                   continue;

         }//end of else if

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

     }//end of while

 

     number = (number+1)%6;

 

     std::cout<<"\n\nInput 'e' to exit,or press any char key to continue:";

     std::cin>>ch;

     std::cout<<std::endl;

     if(ch!='e')

         goto Loop;

    

}

 

 

                                                                                                             <2004-4-11 完成>

 




相关文章

相关软件