我正在尝试使用 IOS 版本 12.4(24)T8 在 Cisco EEM 3.0 TCL 中设置客户端/服务器套接字(这是最近升级以确定问题是否是 EEM 版本)。
我有以下两个示例 Tcl 脚本(参考:http : //wiki.tcl.tk/15315)
服务器.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 分配给环回。
当我通过“show control-plane host open-ports”命令显示监听端口时,12345的服务器端口正在监听,但客户端脚本不产生任何输出。将路由器(通过物理接口)telnet 到端口 12345 会导致连接被拒绝。未启用任何 ACL。
这些脚本在运行 ActiveTCL 8.5 的 Windows XP 计算机上运行。
这是 EEM 3.0 中的错误或安全功能吗?在 EEM 3.0 中启用 TCP 套接字是否需要任何其他命令或设置?