• 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();
            }
        }
    
    }
  • 相关阅读:
    Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart)
    The type javax.xml.rpc.ServiceException cannot be resolved.It is indirectly
    java 调用webservice (asmx) 客户端开发示例
    CXF动态客户端如何优化JaxWsDynamicClientFactory.createClient -- 慢
    telnet测试端口是否正常打开
    Java 数组 可变长参数 实例
    java数组的声明由几种方式
    Java中包、类、方法、属性、常量的命名规则
    web开发性能优化---安全篇
    linux路由服务
  • 原文地址:https://www.cnblogs.com/softidea/p/5396341.html
Copyright © 2020-2023  润新知