如何判断telnet执行结束

勇往直前的胖子 2009-12-29 09:29:37
我想做一个通过telnet自动发送配置命令的程序,比如命令序列是这样的:
cmd1
cmd2
cmd3

需要依次发送这三条命令, 但是要先获得服务器反馈信息才能继续发送下一条命令,也就是说先发送cmd1,收到反馈信息他执行成功了, 才能发送cmd2.

问题是,我怎么才能知道服务器反馈结束?

RFC上说到半双工方式,什么GA命令,我头晕晕的,不知道怎么弄。。。

另外我已经google了2天了。。。请不要随便google了东西发上来,谢谢。

请热心人帮助!
...全文
547 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
coolria 2011-03-12
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 coolria 的回复:]
我也遇到这个问题 但朋友用PYTHON的TELNET库就没有这个问题 不知道PYTHON怎么实现的
[/Quote]
他们用的也是readuntil ...
coolria 2011-03-11
  • 打赏
  • 举报
回复
我也遇到这个问题 但朋友用PYTHON的TELNET库就没有这个问题 不知道PYTHON怎么实现的
tianshuai32 2011-01-17
  • 打赏
  • 举报
回复
该问题我也遇到了,哪位大侠帮帮忙啊???
  • 打赏
  • 举报
回复
回8楼,我用了apache commons-net 包,还是上面一样的问题,发送命令没有问题的,就是不知道什么时候反馈完毕。。。
苍蝇①号 2009-12-29
  • 打赏
  • 举报
回复
直接找个第三方的telnet包来发
  • 打赏
  • 举报
回复
不是我写的。。痛苦死了。。。
nickycheng 2009-12-29
  • 打赏
  • 举报
回复
不是和telnet协商吧,服务端的处理才是关键啊,服务端是个啥?不是你自己写的程序那基本没啥指望了,没有完美的解决方法,我想。
  • 打赏
  • 举报
回复
3楼的想法我做过的,我一开始的时候就是用一个线程发送命令,一个线程读取结果,问题是。。。读线程读到的数据我不知道是发送的哪一条命令的反馈信息。。。

问题又回到了我怎么判断回显结束了,平时人自己用的时候通过眼睛很容易看到回显结束,用程序怎么去判断呢?
  • 打赏
  • 举报
回复
对的,2楼正说中我郁闷的地方,我的意思是能不能和telnet协商一下结束符,比如他回显的最后一个字节是: 200。

因为telnet是ascii编码的,正常数据是不会超过127的。
hitlcyu19 2009-12-29
  • 打赏
  • 举报
回复
单起一个process 启动cmd 然后执行想要的东西 试试
nickycheng 2009-12-29
  • 打赏
  • 举报
回复
你怎么可能知道服务器对于cmd1命令反馈结束了呢? 除非你知道发送cmd1所有可能的结果,也能确认什么字符是结束的标记。

telnet协议里可没规定你发送的东东,到底执行结果啥时候反馈结束。说到底telnet协议只是规定了服务器与客户端的通讯如何进行。
coveking 2009-12-29
  • 打赏
  • 举报
回复
这个程序能否请求服务器,如果可以那应该简单了。cmd1之后多少时间后请求服务器得到cmd1需要的结果,如果OK,继续执行。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧