NS3命令行学习


NS3提供了一种通过命令行传递参数来输出和改变脚本中的变量。
在使用命令行机制时,

一 首先要声明一个命令行类的对象然后调用其函数成员Parse

int main(int argc,char*argv[]){  
...  
CommandLine cmd;  
cmd.Parse(argc,argv);  
...  
}


这两行代表用户可用命令行来访问代码中全局变量和NS3的属性。
以example/tutorial中的first.cc为例,说明可通过命令行显示该类在使用中所定义的默认值。

二 在编译脚本时附加一些额外信息

./waf --run "scratch/myfirst --PrintHelp"
./waf --run "scratch/myfirst --PrintAttributes=ns3::PointToPointNetDevice"

这里写图片描述


可以看到脚本中默认属性DataRate默认值为32768bit/s,帧最大传输单元MTU是1500,网卡地址ff:ff:ff:ff:ff:ff等而在脚本中设这了DataRate为5Mbit/s,意味者实际运行会覆盖原始默认值。

三 通过命令行修改属性值


以echoClient.SetAttribute (“MaxPackets”, UintegerValue (1));为例说明,原始的这句话就限制了MaxPackets属性是固定的为1,如果要改成命令行编译脚本时自定义可通过:

  uint32_t npacks=1;//自定义一个变量
  CommandLine cmd;
  cmd.AddValue("npacks","Number of packs",npacks);
  cmd.Parse(argc,argv);//必须在前三行之后


   echoClient.SetAttribute ("MaxPackets", UintegerValue (npacks)); 

这里写图片描述

相比原有的,这次客户端发送了两次分组而非一次

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值