我尝试编写一些准备好的脚本来学习ns2,但是我遇到了一个问题。这是我在某处找到的代码:
set ns [new Simulator]
set nf [open out.nam w]
$ns namtrace-all $nf
proc finish {} {
global ns nf
$ns flush-trace
close $nf
exec nam out.nam &
exit 0
}
set n0 [$ns node]
set n1 [$ns node]
$ns duplex-link $n0 $n1 1Mb 10ms DropTail
set udp0 [new Agent/UDP]
$ns attach-agent $n0 $udp0
set null0 [new Agent/Null]
$ns attach-agent $n1 $null0
set cbr0 [new Application/Traffic/CBR]
cbr0 set packetSize_ 500
cbr0 set interval_ 0.005
cbr0 attach-agent $udp0
$ns connect $udp $null0
$ns at 1.0 "$cbr0 start"
$ns at 4.5 "$cbr0 stop"
$ns at 5.0 "finish"
$ns run
运行脚本后,我看到了这个错误:
invalid command name "cbr0"
while executing
"cbr0 set packetSize_ 500"
(file "ex2.tcl" line 23)
因为我只是从书中复制这些,我认为我不应该犯错误,问题就在其他地方。
答案 0 :(得分:0)
设置cbr0 [新申请/交通/ CBR]
使用set cbr0 [new Application/Traffic/CBR]
定义后,cbr0必须用作$cbr0
,就像使用ns
/ $ns
一样:
$cbr0 set packetSize_ 500
$cbr0 set interval_ 0.005
$cbr0 attach-agent $udp0
其他错误:udp0已定义,但未使用:
$ ns connect $ udp $ null0
必须:
$ns connect $udp0 $null0
基本示例https://www.isi.edu/nsnam/ns/tutorial/→example1 https://www.isi.edu/nsnam/ns/tutorial/nsscript1.html→https://www.isi.edu/nsnam/ns/tutorial/nsscript2.html等