2011-09-09 12 views
1

ここでは、Javaを使用してtelnetセッションを駆動する方法についていくつか質問しましたが、ソケット/プロトコルレベルでいくつかのコードが表示されています。このtelnetライブラリ、サンプルコード、またはこれらのライブラリの1つを使用してtelnetセッションを駆動するためのサンプルコードへのポインタは表示されません。それは、この簡単なことできない理由はありません:Javaで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

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

を私は、Telnetを探していました。そのリンクはかなり良く見えます。私は今それで遊ぶつもりです。ありがとう。 – Dale

+0

問題ありません - 回答をアップアップしたり受け入れることを忘れないでください。それはサイトを進行させるものです:) –

0

私は非常にApache Commons Netを使用することをお勧めします。特に、彼らのTelnetClientクラス。

も参照してください:

私は単純にApacheが提供するものをラップ自分のtelnetクライアントクラスを実装しました。拡張性があり、使いやすいです。

注:私が遭遇し

唯一の問題は、エコーを無効にされました。詳細については、私の未解決の質問を参照してください。