java通过telnet执行命令操作远程机器 之方式二

来源:互联网 发布:国家打击网络棋牌赌博 编辑:程序博客网 时间:2024/06/14 05:36

线程方式:

一.代码

先写一个类用于读取远程机器发过来的结果

package test2;import java.io.IOException;import java.io.InputStream;public class ReadThread implements Runnable{private boolean flag = true;private InputStream in;private StringBuffer sb = new StringBuffer();public ReadThread(InputStream in)TelnetClientgetInputStream(){this.in = in;}@Overridepublic void run(){try{do{char ch = (char) in.read();int k = ch;if (k != 65535){sb.append(ch);}} while (flag);}catch (IOException e){if (flag)e.printStackTrace();}}public String get(){if (sb != null)return sb.toString();elsereturn "";}public void clear(){sb = new StringBuffer();}public void stop(){flag = false;}}
主类
package test2;/**  * commons-net-3.3.jar是工程依赖包   */import java.io.InputStream;import java.io.PrintStream;import org.apache.commons.net.telnet.TelnetClient;public class MyTelnet1{private InputStream in;private PrintStream out;private TelnetClient tc;private ReadThread reader;public void connect(String ip, Long port) throws Exception{tc = new TelnetClient("VT52");//VT100 VT52 VT220 VTNT ANSItc.connect(ip, port.intValue());in = tc.getInputStream();out = new PrintStream(tc.getOutputStream());reader = new ReadThread(in);new Thread(reader).start();Thread.sleep(100);//必须有,让<span style="font-family: Arial, Helvetica, sans-serif;">Thread(reader)可以读取完远程机器发过来的内容</span>                System.out.println(reader.get());}public void login(String username, String password) throws Exception{sendCommand(username);sendCommand(password);}public String sendCommand(String command) throws Exception{reader.clear();out.println(command);out.flush();Thread.sleep(100);System.out.print(reader.get());return reader.get();}public static void main(String[] args) throws Exception{MyTelnet1 client = new MyTelnet1();client.connect("192.168.0.11", 23l);client.login("telnet","telnet");client.sendCommand("cd /home/telnet/");client.sendCommand("pwd");client.sendCommand("ls");////client.sendCommand("mkdir test");//client.sendCommand("ls");}}




0 0
原创粉丝点击