0

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を使用すると接続できます。

助けてください。

4

1 に答える 1

0

これを試して

    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
    }
于 2013-04-02T13:12:41.227 に答える