• TelnetTerminal


    package com.network.telnet;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.PrintStream;
    
    import org.apache.commons.net.telnet.TelnetClient;
    
    public class TelnetTerminal extends Thread {
        public static final int DEFAULT_TELNET_PORT = 23;
        /**
         * the TelnetClient of commons-net
         */
        public TelnetClient telnet;
        /**
         * the output of remote
         */
        private StringBuffer remoteInfo = new StringBuffer();
        private InputStream in;
        private PrintStream out;
    
        /**
         * use default port
         * 
         * @param ip
         */
        public TelnetTerminal(String ip) {
            this(ip, DEFAULT_TELNET_PORT);
        }
    
        /**
         * create a telnet terminate
         * 
         * @param ip
         * @param port
         */
        public TelnetTerminal(String ip, int port) {
            try {
                telnet = new TelnetClient();            
                telnet.connect(ip, port);
                //to sure the thread must be stop and socket must be close
                telnet.setSoTimeout(3000);
                in = telnet.getInputStream();
                out = new PrintStream(telnet.getOutputStream());
                // open the thread of received
                start();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        /**
         * wirte to remote
         * 
         * @param command
         */
        public void write(String command) {
            try {
                // the interval of execute command
                Thread.sleep(500);
                // a command end with '
    
    '
                out.println(command);
                out.flush();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        /**
         * close connect
         */
        public void disconnect() {
            try {
                telnet.disconnect();
                telnet = null;
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        @Override
        public void run() {
            byte[] buff = new byte[1024];
            int len = 0;
            try {
                while ((len = in.read(buff)) != -1) {
                    String str = new String(buff, 0, len);
                    remoteInfo.append(str);
                }
            } catch (IOException e) {
    
            }
        }
    
        /**
         * exceute script
         * 
         * @param scripts
         */
        public void runCMD(String... scripts) {
            for (String cmd : scripts) {
                write(cmd.trim());
            }
        }
    
        /**
         * get output info of the remote, but this method will block 1000ms
         * 
         * @return
         */
        public String getRemoteInfo() {
            try {
                Thread.sleep(1000);
                return remoteInfo.toString();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            return "";
        }
    }
  • 相关阅读:
    poj 3278 catch that cow
    POJ 1028 Web Navigation
    poj 2643 election
    hdu 1908 double queues
    hdu_2669 Romantic(扩展欧几里得)
    0/1背包 dp学习~6
    校验码
    最长上升子序列(LIS经典变型) dp学习~5
    LCS最长公共子序列~dp学习~4
    最长上升子序列(LIS) dp学习~3
  • 原文地址:https://www.cnblogs.com/wellla/p/4200821.html
Copyright © 2020-2023  润新知