VC语言

本类阅读TOP10

·VC++下使用ADO编写数据库程序
·VC++ 学习笔记(二)
·Windows消息大全
·每个开发人员现在应该下载的十种必备工具
·在2000和xp下,隐藏进程,VC6.0测试通过!!!
·用Visual C++打造IE浏览器(1)
·Netmsg 局域网聊天程序
·教你用VC6做QQ对对碰外挂程序
·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 完成>

 




相关文章

相关软件




月光软件程序下载编程文档电脑教程网站设计网址导航网络文学游戏天地幽默笑话生活休闲写作范文安妮宝贝
电脑技术编程开发网络专区谈天说地情感世界游戏元素分类游戏热门游戏体育运动手机专区业余爱好影视沙龙
音乐天地数码广场教育园地科学大观古今纵横谈股论金人文艺术医学保健动漫图酷二手专区地方风情各行各业

月光软件站·版权所有