我想使用nam運行下面的代碼。ns2無法連接到現有的nam實例
set ns [new Simulator]
set nf [open lab1.nam w]
$ns namtrace-all $nf
set f [open lab1.tr w]
proc record {} {
global sink f
set ns [Simulator instance]
set time 0.12
set bw [$sink set bytes_]
set now [$ns now]
puts $f "$now [expr (($bw/$time)*8/1000000)]"
$sink set bytes_ 0
$ns at [expr $now+$time] "record"
}
proc finish {} {
global ns nf f
$ns flush-trace
close $nf
close $f
exit 0
}
set n0 [$ns node]
set n1 [$ns node]
$ns duplex-link $n0 $n1 4Mb 10ms DropTail
set udp0 [new Agent/UDP]
$udp0 set packetSize_ 1500
$ns attach-agent $n0 $udp0
set traffic0 [new Application/Traffic/CBR]
$traffic0 set packetsize_ 1500
$traffic0 set interval_ 0.01
$traffic0 attach-agent $udp0
set sink [new Agent/LossMonitor]
$ns attach-agent $n1 $sink
$ns connect $udp0 $sink
$ns at 0.0 "record"
$ns at 2.0 "$traffic0 start"
$ns at 10.0 "$traffic0 stop"
$ns at 12.0 "finish"
$ns run
我想在虛擬機上使用VirtualBox與Windows 7 32位運行它。
在cmd首先我執行命令ns lab1.tcl
在這個im試圖打開nam之後,使用命令nam lab1.nam
。 當我這樣做,我得到的消息
南實際上然後運行,但不正確,這意味着它總是創建的210個字節的數據包和我的代碼不會影響該無論PACKETSIZE我給。
看起來像一個未終止的字符串,可能是在命令行解析中。這確實很奇怪,因爲這是Windows上大多數運行時間的一個經過充分測試的部分。我猜測代碼是用一個運行時構建的,並且正在執行另一個!在其他平臺上,運行時相當簡單很多 –