zoukankan      html  css  js  c++  java
  • 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 "";
        }
    }
  • 相关阅读:
    onpropertychange与onchange事件应用
    HttpWorkerRequest实现大文件上传asp.net
    JQuery中对option的添加、删除、取值
    "分析 EntityName 时出错"的解决方法
    asp.net断点续传
    直接在ASP.net中上传大文件的方法
    ASP.NET中文件上传下载方法集合
    asp.net .ashx文件使用Server.MapPath解决方法
    FF与IE下javascript计算屏幕尺寸
    处理顶点——为赛道创建顶点
  • 原文地址:https://www.cnblogs.com/wellla/p/4200821.html
Copyright © 2011-2022 走看看