过程如下:
1,
//首先利用Socket连接(过程有些省略)
Socket mSocket = new Socket();
mSocket.connect(xx,xx);
mServerOutput = mSocket.getOutputStream();
mServerInput = new BufferedInputStream(mSocket.getInputStream());
2,
//成功连接后,输入用户名和密码进行登陆
send( new ByteArrayInputStream( ( loginID + "\r\n").getBytes() ), mServerOutput );
send( new ByteArrayInputStream( ( loginPassword + "\r\n" ).getBytes() ), mServerOutput );
//send方法:将字符串写进输出流
private void send(InputStream in, OutputStream out) throws IOException
{
  byte[] buff = new byte[1024];
  try {
    int n = in.read(buff);
    out.write(buff, 0, n);
  }catch(IOException e){
    throw e;
  }
}
3,现在需要做的事情:利用telnet向连接上的机器发送命令
首先,需要通过“i”命令察看任务状态:
然后通过”tt”来追溯函数调用过程:
send( new ByteArrayInputStream( ( "i" + "\r\n" ).getBytes() ), mServerOutput);
send( new ByteArrayInputStream( ( "tt \"RecTaskF\"" + "\r\n" ).getBytes() ), mServerOutput);
//send( new ByteArrayInputStream( ( "tt \"RecTaskF_RcgTask2\"" + "\r\n" ).getBytes() ), mServerOutput);
//send( new ByteArrayInputStream( ( "tt \"RecTaskF_RcgTask1\"" + "\r\n" K ).getBytes() ), mServerOutput);
//send( new ByteArrayInputStream( ( "tt \"RecTaskR\"" + "\r\n" ).getBytes() ), mServerOutput);
问题:在这里我测试过如果只发送i和一个tt命令,能正常发送过去。
如果再连续发送几个tt命令,则好像不能正常发送过去。
也就是将上面注释的代码不注释的话就有问题。
也许我的思路有问题,但是目的只有一个:成功利用telnet连接后,相继发送i命令和n个tt命令
请大家帮忙看看,有好的思路或者建议请不吝赐教,十分感谢。
成功解决后,另加100分感谢。

解决方案 »

  1.   

    [连续发送多条的话,用循环啊。。]
    在这里我已经使用send方法多次发送命令过去,应该和循环没有关系吧。还是说可以用循环的方式来实现telnet发送多次命令。请说明详细一些,谢谢。
      

  2.   

    首先,需要通过“i”命令察看任务状态:
    然后通过”tt”来追溯函数调用过程:现测试发现,输入i命令后会导致后面的命令发送不过去。但是tt命令需要在i命令发送后才能查到内容,郁闷啊。
    有没有人做过类似的,比如i命令输出的内容太长会不会有影响?谢谢!