有谁能告诉我该如何解决这个问题?将一个以上的应用程序附加到一个代理程序时遇到问题。 (我在Ubuntu12.10上运行ns2.35)
我的环境中有两个节点(源和目标),以下是一些功能:
我在Destination节点上附加了一个丢失监视代理程序。
我在源节点上附加了一个udp代理。
我通过以下声明在udp代理上附加了9个应用程序:
set nExpGen 9
for {set i 1} {$i <= $nExpGen} {incr i} {
set eee($i) [new Application/Traffic/Exponential]
$eee($i) attach-agent $udp
$ns connect $eee($i) $lmt
#nExpGen= number of exponential generators
#eee = exponential application
#lmt = loss-monitor agent
运行我的tcl文件时出现错误“无法读取代理地址:没有这样的变量..”(参见[错误消息])
我是否使用错误的方法将这些应用程序附加到代理?我该如何解决这个问题?
提前谢谢大家。
[错误讯息]
can't read "agent_addr_": no such variable
while executing
"subst $[subst $var]"
(procedure "_o40" line 5)
(Object next line 5)
invoked from within
"_o40 next agent_addr_"
("eval" body line 1)
invoked from within
"eval $self next $args"
(procedure "_o40" line 11)
(Application/Traffic set line 11)
invoked from within
"$dst set agent_addr_"
(procedure "_o3" line 2)
(Simulator simplex-connect line 2)
invoked from within
"$self simplex-connect $dst $src"
(procedure "_o3" line 10)
(Simulator connect line 10)
invoked from within
"$ns connect $eee($i) $lmt"
("for" body line 4)
invoked from within
"for {set i 1} {$i <= $nExpGen} {incr i} {
set eee($i) [new Application/Traffic/Exponential]
$eee($i) attach-agent $udp
$ns con..."
(file "myTest3.tcl" line 47)
答案 0 :(得分:0)
我得到了解决方案: 以下语句在两个“代理”之间建立连接(此处为$ A和$ B)。
$ns connect $A $B
因此,对于这个问题,我将连接我的UDP代理和LossMonitor代理(在我的for循环之外)。
$ns connect $udp $lmt
将“应用程序”连接到“代理”会导致编译错误。