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

Java驱动Telnet的高级示例代码的位置,java,testing,automation,driver,telnet,Java,Testing,Automation,Driver,Telnet,我在这里研究了几个关于使用Java驱动telnet会话的问题,虽然我看到了一些套接字/协议级别的代码,以及一些关于这个或那个telnet库的建议,但我没有看到使用这些库驱动telnet会话的示例代码或指向示例代码的指针。没有理由不这么容易: MyTel session = new MyTel("host.myco"); session.start(); session.waitForThenType("login:", "imauser"); session.waitForThenType("P

我在这里研究了几个关于使用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会话。

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);
我强烈推荐使用。尤其是他们的班级

另见:

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

注:

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

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);

我在找telnet。这个链接看起来不错。我现在要玩它。谢谢。没问题——记得投票或接受答案;它是网站运行的动力:)