我想在Java中使用等同于Expect的东西。这是一个简单的代码:
public class TelnetJExpect
{
@Test
public void telnetTest()
{
ExpectJ expectinator = new ExpectJ(5);
try
{
Spawn shell = expectinator.spawn("172.17.80.161", 23);
System.out.println("\nExit: " + shell.getCurrentStandardOutContents());
shell.stop();
}
catch (Exception e)
{
e.printStackTrace();
assertTrue(false);
}
}
}结果,我得到了垃圾:
ÿýÿý ÿý#ÿý'退出:
ÿýÿý ÿý#ÿý'但是,当我从命令行使用telnet时,我得到了连接。
请帮帮忙。
发布于 2013-04-02 21:12:41
尝尝这个
ExpectJ ex = new ExpectJ(50);
//org.apache.commons.net.telnet.TelnetClient
TelnetClient telnetClient = new TelnetClient();
telnetClient.connect("192.168.56.101");
/*
* add this constructor to TelnetSpawn
*
* public TelnetSpawn(InputStream in, OutputStream out) throws IOException {
this.m_socket = null;
m_fromSocket = in;
m_toSocket = out;
*/
TelnetSpawn telnetSpawn = new TelnetSpawn(telnetClient.getInputStream(), telnetClient.getOutputStream());
Spawn spawn = ex.spawn(telnetSpawn);
try{
//provide username and password here
spawn.interact();
}catch(NullPointerException npe){
//ignore, nasty expectj bug
}https://stackoverflow.com/questions/12632514
复制相似问题