我想做一个通过telnet自动发送配置命令的程序,比如命令序列是这样的:
cmd1
cmd2
cmd3需要依次发送这三条命令, 但是要先获得服务器反馈信息才能继续发送下一条命令,也就是说先发送cmd1,收到反馈信息他执行成功了, 才能发送cmd2.问题是,我怎么才能知道服务器反馈结束?RFC上说到半双工方式,什么GA命令,我头晕晕的,不知道怎么弄另外我已经google了2天了请不要随便google了东西发上来,谢谢。请热心人帮助!

解决方案 »

  1.   

    这个程序能否请求服务器,如果可以那应该简单了。cmd1之后多少时间后请求服务器得到cmd1需要的结果,如果OK,继续执行。
      

  2.   

    你怎么可能知道服务器对于cmd1命令反馈结束了呢? 除非你知道发送cmd1所有可能的结果,也能确认什么字符是结束的标记。telnet协议里可没规定你发送的东东,到底执行结果啥时候反馈结束。说到底telnet协议只是规定了服务器与客户端的通讯如何进行。
      

  3.   

    单起一个process 启动cmd 然后执行想要的东西 试试
      

  4.   

    对的,2楼正说中我郁闷的地方,我的意思是能不能和telnet协商一下结束符,比如他回显的最后一个字节是: 200。因为telnet是ascii编码的,正常数据是不会超过127的。
      

  5.   

    不是和telnet协商吧,服务端的处理才是关键啊,服务端是个啥?不是你自己写的程序那基本没啥指望了,没有完美的解决方法,我想。
      

  6.   

    直接找个第三方的telnet包来发
      

  7.   

    回8楼,我用了apache commons-net 包,还是上面一样的问题,发送命令没有问题的,就是不知道什么时候反馈完毕
      

  8.   

    我也遇到这个问题 但朋友用PYTHON的TELNET库就没有这个问题 不知道PYTHON怎么实现的
      

  9.   

    他们用的也是readuntil  ...