我对 NS2 的使用非常天真,并试图在 NS2 中通过 UDP 实现 CBR。我写了以下代码:
set ns [new Simulator]
set tracefile [open out.tr w]
$ns trace-all $tracefile
set nf [open out.nam w]
$ns namtrace-all $nf
#should be "proc name args body"
#while executing
#"proc finish {}"
proc finish {}
{
global ns tracefile nf
$ns flush-trace
close $nf
close $tracefile
exec nam out.nam &
exit 0
}
set n0 [$ns node]
set n1 [$ns node]
$ns simplex-link $n0 $n1 1Mb 10ms DropTail
set udp0 [new Agent/UDP]
$ns attach-agent $n0 $udp0
set cbr[new Application/Traffic/CBR]
$cbr attach-agent $udp0
set null0 [new Agent/Null]
$ns attach-agent $n1 $null0
$ns connect $udp0 $null0
$ns at 1.0 "$cbr start"
$ns at 3.0 "finish"
$ns run
显示的错误在 proc 完成过程上方进行了注释。我试图寻找错误,但找不到。我所做的就是将其编写为 Tcl 脚本并用于运行 ns filename.tcl 。