日期:2014-05-19 浏览次数:20849 次
import org.apache.commons.net.telnet.*; import java.io.*; public class TmhTelnet { private static TelnetClient tc = null; private InputStream in; private PrintStream out; public static void main(String args[]) { new TmhTelnet("192.168.5.55",23,"root","1234"); } public TmhTelnet(String host, int port, String username, String password) { byte[] a = new byte[1024]; if (intconnect(host, port)) { write(username); write(password); write("test.bat"); closeconnect(); } } private void writescript(String filename) { try { if (new File(filename).exists()) { FileReader f = new FileReader(filename); BufferedReader reader = new BufferedReader(f); String command = ""; while (command != null) { command = reader.readLine(); write(command); } } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void write(String command) { try { //System.out.println("command:>>>>>>>>>" + command); out.println(command); out.flush(); [color=#FF0000] // for(int i=0;i<800000000;i++); // 应该使用线程同步使程序在接受到对方相应后再执行下一条命令这里使用for循环来模拟对方的相应时间[/color] printresponse(); } catch (Exception e) { e.printStackTrace(); } } private boolean intconnect(String host, int port) { try { tc = new TelnetClient(); TerminalTypeOptionHandler ttopt = new TerminalTypeOptionHandler( "VT220", false, false, true, false); EchoOptionHandler echoopt = new EchoOptionHandler(true, false, true, false); SuppressGAOptionHandler gaopt = new SuppressGAOptionHandler(true, true, true, true); tc.addOptionHandler(ttopt); tc.addOptionHandler(echoopt); tc.addOptionHandler(gaopt); tc.connect(host, port); in = tc.getInputStream(); out = new PrintStream(tc.getOutputStream()); return true; } catch (Exception e) { e.printStackTrace(); try { tc.disconnect(); in.close(); out.close(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } return false; } } private void closeconnect() { try { tc.disconnect(); in.close(); // out.close(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } private String printresponse() { try { byte[] buff = new byte[1024]; int ret_read = 0; do { ret_read = in.read(buff); String a = new String(buff, 0, ret_read); if (a.endsWith(": ") | a.endsWith(">") | a.endsWith("]")) {