ns2将多个应用程序附加到一个代理程序

时间:2013-05-17 02:25:11

标签: tcl ns2

有谁能告诉我该如何解决这个问题?将一个以上的应用程序附加到一个代理程序时遇到问题。 (我在Ubuntu12.10上运行ns2.35)

我的环境中有两个节点(源和目标),以下是一些功能:

  1. 我在Destination节点上附加了一个丢失监视代理程序。

  2. 我在源节点上附加了一个udp代理。

  3. 我通过以下声明在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
    
  4. 运行我的tcl文件时出现错误“无法读取代理地址:没有这样的变量..”(参见[错误消息])

  5. 我是否使用错误的方法将这些应用程序附加到代理?我该如何解决这个问题?

  6. 提前谢谢大家。

    [错误讯息]

    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)
    

1 个答案:

答案 0 :(得分:0)

我得到了解决方案: 以下语句在两个“代理”之间建立连接(此处为$ A和$ B)。

$ns connect $A $B

因此,对于这个问题,我将连接我的UDP代理和LossMonitor代理(在我的for循环之外)。

$ns connect $udp $lmt

将“应用程序”连接到“代理”会导致编译错误。