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 "";
        }
    }
  • 相关阅读:
    PHP基础学习笔记(一)
    安装wampserver之后,浏览器中输入localhost页面显示IIS7解决办法
    HTML5常识总结(一)
    AngularJs中的服务
    AngularJs中的directives(指令part1)
    Happy Number——LeetCode
    Binary Tree Zigzag Level Order Traversal——LeetCode
    Construct Binary Tree from Preorder and Inorder Traversal——LeetCode
    Construct Binary Tree from Inorder and Postorder Traversal——LeetCode
    Convert Sorted Array to Binary Search Tree——LeetCode
  • 原文地址:https://www.cnblogs.com/wellla/p/4200821.html
Copyright © 2011-2022 走看看