像crt或者ssh、甚至是cmd命令中使用window的telnet命令连接交换机。都可以起到控制交换机的作用。
telnet说白了就是一个tcp的长连接。你向交换机输入一组命令,其实就是你使用socket连接上交换机,把你的命令out出去。
如果你想看你执行的命令,返回了什么,你就是用io流直接读取socket中的长连接流中的内容即可。telnet其实就是这么简单。
使用java连接telnet进行操作的注意
1.telnet有vt100 vt52 vt220 vtnt ansi等协议。
我用vt100。
2.vt100控制码(ansi控制码)过滤的问题,可以过滤,也可以在服务设置不要。
不过滤都是一些乱码。是以\033[***一个字母结尾的格式。
3.中文乱码的问题。
new string(old.getbytes("iso8859-1"),"gbk")。
4.如何判断读取到最后了。
一有readuntil(),二有使用线程。
5.选择telnet的java包问题,包有很多,比如appache(commons-net-3.0.jar), ganymed(ganymed-ssh2-build210.jar),javaexpect(smart-0.1-snapshot-jar-with-dependencies.jar)
我使用appache。javaexpect有带的vt100控制码过滤,我没有仔细研究。
6.write要flush()才发送。
看代码吧:
输出的内容在telnet.txt文件中,我贴出来给大家看看!
如有疑问,请加qq群:135430763 共同学习!