Java驱动Telnet的高级示例代码的位置

时间:2011-09-09 16:44:59

标签: java testing automation driver telnet

我在这里看了几个关于使用Java来驱动telnet会话的问题,虽然我在套接字/协议级别看到了一些代码,并且为这个或那个telnet库提供了一些建议,但我看不到样本代码或指向示例代码的指针,用于使用其中一个库驱动telnet会话。没有理由不能这么简单:

MyTel session = new MyTel("host.myco");
session.start();
session.waitForThenType("login:", "imauser");
session.waitForThenType("Password:","secr3et");
String output = session.waitForThenType("Solaris", "tail MyFile.txt");
session.waitForThenType("%>","exit");
session.end();
// enjoy output here

因此,寻找一些不在telnet套接字和协议之外的示例代码,但可以驱动telnet会话。

2 个答案:

答案 0 :(得分:2)

Which Java Telnet or openSSH library?

http://sadun-util.sourceforge.net/telnet_library.html

sadun代码是更大的实用程序集的一部分。你需要的是这些文件:

com.deltax.util (all)
org.sadun.util.tp (all)
org.sadun.util
> Cache.java
> ClassResolver.java
> OperationTimedoutException.java
> TelnetInputStream.java
> TelnetInputStreamConsumer.java
> TelnetNVTChannel.java
> Terminable.java
> UnixLoginHandler.java

这将允许您编写类似于问题中的程序:

Socket s = new Socket("host.myco", 23);
Writer w = new OutputStreamWriter(s.getOutputStream());
UnixLoginHandler handler = new UnixLoginHandler(s);
TelnetInputStreamConsumer is = handler.doLogin("imauser","secre3t");
System.out.println(is.consumeInput(10000));
is.setConsumptionOperationsTimeout(10000);
w.write("tail MyFile.txt\r\n");w.flush();
String output = is.consumeByCriteria(new TelnetInputStreamConsumer.ContainsStringCriterium("$ "));
handler.doLogout();
System.out.println("output:\n" + output);

答案 1 :(得分:0)

我强烈建议您使用Apache Commons Net。特别是他们的TelnetClient类。

另见:

我已经实现了自己的telnet客户端类,它只包装了Apache提供的类。它具有可扩展性和易用性。

注意:

我遇到的唯一问题是禁用回声。有关更多信息,请参阅我未解决的问题:

相关问题