我正在尝试使用IOS版本12.4(24)T8在Cisco EEM 3.0 TCL中设置客户端/服务器套接字(最近已升级以确定问题是否为EEM ver)。

以下两个示例Tcl脚本(参考:http://wiki.tcl.tk/15315)

Server.tcl:

::cisco::eem::event_register_none maxrun 120

namespace import ::cisco::eem::*
namespace import ::cisco::lib::*

proc accept {chan addr port} {
    puts "$addr:$port says [gets $chan]"
    puts $chan goodbye
    close $chan
}
socket -server accept 12345
vwait forever


客户端.tcl:

::cisco::eem::event_register_none maxrun 20

namespace import ::cisco::eem::*
namespace import ::cisco::lib::*

set chan [socket 10.0.0.2 12345]
puts $chan hello
flush $chan
puts "10.0.0.2:12345 says [gets $chan]"
close $chan


10.0.0.2被分配给环回。

当我通过“显示控制平面”显示监听端口时host open-ports”命令,服务器端口12345正在侦听,但是客户端脚本不会产生任何输出。到路由器的telnet(通过物理接口)到端口12345的连接被拒绝。没有启用ACL。

这些脚本可从运行ActiveTCL 8.5的Windows XP计算机上运行。

这是EEM 3.0中的错误或安全功能吗?在EEM 3.0中启用TCP套接字是否需要其他命令或设置吗?

评论

有什么答案对您有帮助吗?如果是这样,您应该接受答案,这样问题就不会永远弹出来寻找答案。或者,您可以发布并接受自己的答案。

#1 楼

我将从调试命令开始。我将从

debug event manager tcl cli

开始,有关EEM最佳实践文档的更多信息,请参见https://supportforums.cisco.com/docs/DOC-12757和故障排除。