当前位置:  编程技术>java/j2ee

使用java实现telnet-client工具分享

    来源: 互联网  发布时间:2014-11-04

    本文导语:  telnet-client太费尽了,比ssh-client费尽的多,搞了一天,凑合能用,还得改。org.apache.commons.net.telnet.TelnetClien --使用了apache的commons-net包,commons-net-3.0.1-bin.zip。 代码如下:package org.sl.util;import org.apache.commons.net.telnet.TelnetClient;import j...

telnet-client太费尽了,比ssh-client费尽的多,搞了一天,凑合能用,还得改。
org.apache.commons.net.telnet.TelnetClien --使用了apache的commons-net包,commons-net-3.0.1-bin.zip。

代码如下:

package org.sl.util;
import org.apache.commons.net.telnet.TelnetClient;
import java.io.*;
import java.nio.ByteBuffer;
public class TelnetUtil {
    String charset = null;
    byte[] buff = new byte[2048];
    TelnetClient telnetClient = new TelnetClient();
    BufferedReader telnetReader = null;
    BufferedWriter telnetWirter = null;
    InputStream telnetIn = null;
    OutputStream telnetOut = null;

    public TelnetUtil() {
        telnetClient = new TelnetClient();
    }

    /**
     * 连接至服务器
     * @param ip
     * @param port
     * @throws UnsupportedEncodingException
     * @throws IOException
     */
    public void connect(String ip, int port) throws UnsupportedEncodingException,IOException {
        telnetClient.connect(ip,port);
        setIOStream();
    }

    /**
     * 连接至服务器
      * @param ip
     * @throws UnsupportedEncodingException
     * @throws IOException
     */
    public void connect(String ip) throws UnsupportedEncodingException,IOException {
        telnetClient.connect(ip);
        setIOStream();
    }

    void setIOStream() throws UnsupportedEncodingException {
        telnetIn = telnetClient.getInputStream();
        telnetOut = telnetClient.getOutputStream();
        if(null==charset){
            telnetReader = new BufferedReader(new InputStreamReader(telnetIn));
            telnetWirter = new BufferedWriter(new OutputStreamWriter(telnetOut));
        }else{
            telnetReader = new BufferedReader(new InputStreamReader(telnetIn, charset));
            telnetWirter = new BufferedWriter(new OutputStreamWriter(telnetOut, charset));
        }
    }

    /**
     * 登录
     * @param user
     * @param passwd
     * @return 是否登录成功.
     * @throws IOException
     */
    public boolean login(String user,String passwd) throws IOException {
        String read = readString();
        for(int i=0; ; i++){
            if(-1==read.indexOf("login")){
                read = readString();
            }else{
                break;
            }
        }
        writeText(user);

        read = readString();
        for(int i=0; ; i++){
            if(-1==read.indexOf("Password")){
                read = readString();
            }else{
                break;
            }
        }
        writeText(passwd);

        for(;;){
            read = readString();
            //System.out.println("last:"+read);
            if(-1!=read.indexOf("Last")){
                return true;
            }else if(-1!=read.indexOf("incorrect")){
                return false;
            }
        }
    }

    /**
     * 这是一个测试方法,随便写。
     * @throws IOException
     */
    public void show() throws IOException {
//        System.out.println(readString());
//        System.out.println(readString());
//        ByteBuffer tmp = ByteBuffer.allocate(1024);
//        byte[] buff = new byte[1024];
//        while(telnetIn.available()>0){
//            int readLen = readBytes(buff,0,1024);
//            tmp.put(buff,0,readLen);
//        }

//        System.out.println(new String(tmp.array()));
        System.out.println("1 "+readString());
        System.out.println("2 "+readString());
        System.out.println("3 "+readString());
        writeText("root");
        System.out.println("4 " + readString());
        writeText("123456");
        System.out.println("5 "+readString());
//        System.out.println("6 "+readString());
//        System.out.println("7 "+readString());

    }

    public int readBytes(byte[] buff, int offset, int len) throws IOException {
        return telnetIn.read(buff,offset,len);
    }

    /**
     * 读取字符串

     * 相当于readByte()转为字符串
     * @return
     * @throws IOException
     */
    public String readString() throws IOException {
        int readLen = readBytes(this.buff, 0, this.buff.length);
        if(0


    
 
 

您可能感兴趣的文章:

  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • 弱智问题:我们怎么才知道要使用的方法需要实现什么接口才能使用这个方法呢?
  • 使用java jdk中的LinkedHashMap实现简单的LRU算法
  • 请问谁能讲讲使用软件实现的mcu原理。
  • 在Python3中使用urllib实现http的get和post提交数据操作
  • 可不可以在程序中直接使用ftp客户端的函数实现文件传输?
  • 使用libpcap实现抓包程序的步骤及代码示例
  • 如何使用http协议实现流媒体的传输?
  • juqery的python实现:pyquery学习使用教程
  • 使用JavaScript实现的Flash运行环境 Gordon
  • 使用Applet能不能实现基于浏览器的打印呢???
  • 请问使用或安装什么软件能够实现Win2000下访问Linux分区?
  • 急急!!!高分求助,关于实现LINUX软件的使用限制问题
  • 在ACC下不使用循环怎样实现,读取文件指定行的数据.
  • 请教使用openobex库实现蓝牙传输的问题
  • 如何使用shell文件实现linux环境下的挂载功能,具体代码!!
  • Linux下的Socket通信如何断开连接的端口从而实现重复使用该端口
  • 怎样在不使用offices产品开启WORD下实现将WORD内容转化为图片的格式
  • python使用循环实现批量创建文件夹示例
  • 使用实现状态栏?
  • 高分求救怎样使用libnet实现TCP的封堵技术!!!!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux系统下使用使用性能监视工具的前提?
  • 我常未开发过Linux下的程序,请问Linux下可以使用那些开发工具,最好的开发工具是什么版本?
  • IT科技资讯 iis7站长之家
  • WINDOWS下可以使用flashget来下载软件,那在linux下用什么工具软件来下载程序呢?哪里有linux平台下的下载工具可以下载?谢谢!
  • 磁盘使用情况统计工具 KDirStat
  • 网络使用情况统计工具 AsItHappens
  • 我想在linux下开发软件,但不知道使用什么语言好,和使用什么开发工具
  • 磁盘使用分析工具 Filelight
  • 磁盘使用统计工具 ncdu
  • 开发java使用什么工具较好
  • 在LINUX里分割多媒体工具,记得使用命令行比较灵活的那种哦!!急着,等!!!!!!!!!!!!!
  • 菜鸟问题,小弟刚刚使用LINUX不久,不知道如何使用编程工具进行编译和运行!
  • 你们在LINUX下面使用什么即时通讯联系工具?
  • 大家一般使用什么工具来阅读源码
  • 求能在RH9下使用的rpm包管理工具,一定给分
  • 在linux下使用什么编译工具?
  • Linux中自带开发工具的使用
  • 哪位会使用代码保护工具WingGuard来保护java代码?
  • 谁知道如何在i386平台使用交叉编译工具为mips平台编译libtiff啊?
  • 使用工具 plsqldev将Excel导入Oracle数据库
  • C++ I/O 成员 tellg():使用输入流读取流指针
  • 在测试memset函数的执行效率时,分为使用Cash和不使用Cash辆种方式,该如何控制是否使用缓存?
  • C++ I/O 成员 tellp():使用输出流读取流指针
  • 求ibm6000的中文使用手册 !从来没用过服务器,现在急需使用它,不知如何使用! 急!!!!!
  • Python不使用print而直接输出二进制字符串
  • 请问:在使用oracle数据库作开发时,是使用pro*c作开发好些,还是使用库函数如oci等好一些啊?或者它们有什么区别或者优缺点啊?
  • Office 2010 Module模式下使用VBA Addressof
  • 急求结果!!假设一个有两个元素的信号量集S,表示了一个磁带驱动器系统,其中进程1使用磁带机A,进程2同时使用磁带机A和B,进程3使用磁带机B。
  • windows下tinyxml.dll下载安装使用(c++解析XML库)
  • c#中SAPI使用总结——SpVoice的使用方法
  • tcmalloc内存泄露优化c++开源库下载,安装及使用介绍




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3