zoukankan      html  css  js  c++  java
  • commons.net.telnet使用示例

    import org.apache.commons.net.telnet.TelnetClient;
    
    import java.io.IOException;
    
    public class TelnetDemo {
    
        public static void main(String[] args) throws IOException {
            TelnetClient telnet = new TelnetClient();
            String remoteip = "10.1.1.159";
            int remoteport = 9999;
            telnet.connect(remoteip, remoteport);
            System.out.println(telnet.isAvailable());
            System.out.println(telnet.isConnected());
    
            IOUtil.readWrite(telnet.getInputStream(), telnet.getOutputStream(),
                    System.in, System.out);
            telnet.disconnect();
            System.exit(0);
        }
    }
    import org.apache.commons.net.io.Util;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    
    /**
     * This is a utility class providing a reader/writer capability required
     * by the weatherTelnet, rexec, rshell, and rlogin example programs.
     * The only point of the class is to hold the static method readWrite
     * which spawns a reader thread and a writer thread.  The reader thread
     * reads from a local input source (presumably stdin) and writes the
     * data to a remote output destination.  The writer thread reads from
     * a remote input source and writes to a local output destination.
     * The threads terminate when the remote input source closes.
     * *
     */
    
    public final class IOUtil {
    
        public static final void readWrite(final InputStream remoteInput,
                                           final OutputStream remoteOutput,
                                           final InputStream localInput,
                                           final OutputStream localOutput) {
            Thread reader, writer;
    
            reader = new Thread() {
                @Override
                public void run() {
                    int ch;
    
                    try {
                        while (!interrupted() && (ch = localInput.read()) != -1) {
                            remoteOutput.write(ch);
                            remoteOutput.flush();
                        }
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            };
    
    
            writer = new Thread() {
                @Override
                public void run() {
                    try {
                        Util.copyStream(remoteInput, localOutput);
                    } catch (IOException e) {
                        e.printStackTrace();
                        System.exit(1);
                    }
                }
            };
    
    
            writer.setPriority(Thread.currentThread().getPriority() + 1);
            writer.start();
            reader.setDaemon(true);
            reader.start();
    
            try {
                writer.join();
                reader.interrupt();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    
    }
  • 相关阅读:
    JVM笔记-temp
    Spark笔记-treeReduce、reduce、reduceByKey
    Java笔记-快速失败and安全失败
    Netty笔记--ByteBuf释放
    Spark笔记--使用Maven编译Spark源码(windows)
    MySQL笔记--查询语句实践
    Kafka笔记--指定消息的partition规则
    Spark Executor Driver资源调度小结【转】
    Spark学习笔记--Graphx
    HBase笔记--自定义filter
  • 原文地址:https://www.cnblogs.com/softidea/p/5396341.html
Copyright © 2011-2022 走看看