【问题标题】:Telnet Connection on java consoleJava 控制台上的 Telnet 连接
【发布时间】:2011-11-15 04:21:16
【问题描述】:

我正在 Linux 操作系统中开发 Eclipse,这就是我想要做的(仅在 Java 控制台中)-

  1. 通过(当前)telnet 客户端连接到另一台远程计算机
  2. 在远程系统中执行一个简单的命令(类似 ls)

这可能吗?我确定Runtime.getRuntime.exec() 不会工作。所以使用了commons.net jar 文件。这是我的代码 sn-p

public static void testMount() throws Exception {
    String osName = "";
    Scanner sc = new Scanner(System.in);
    TelnetClient telnet = new TelnetClient();
    System.out.println("Operating System: ");
    osName = sc.next();
    System.out.println(osName);
    String volumeToMount = "";
    String mountPoint = "";
    String ipAddress = "";
    int port = 23;

    if (osName.equalsIgnoreCase("Linux")) {
        // Linux
        ipAddress = "1.2.3.4"; //
        telnet.connect(ipAddress, port);
        volumeToMount = "/dev/hda1";
        mountPoint = "/data/Temp";
    } 
    mountFileSystem(volumeToMount, mountPoint);
}

如果您有现有示例或者可以修改我的代码,如果您在此处分享,我将不胜感激!

【问题讨论】:

    标签: java linux eclipse console telnet


    【解决方案1】:

    使用 Apache Commons Net TelnetClient,您必须使用对象返回的 InputStreamOutputStream(参见 getInputStream()getOutputStream() 方法)来读取数据和发送数据(命令)。 here 提供了一个很好的示例(请参阅 Telnet 和 Commons/NET 部分)。

    【讨论】:

    • 非常感谢..连接已建立。但我无法通过发出 ls 或 cd /tmp 等命令进行交互...
    • @hari:为什么不呢?你看过我链接的例子吗(使用TelnetClientgetgetInputStream()getOutputStream()?如果是,你得到了什么错误?
    • 没有错误。但是登录后,我给了ls命令,没有任何反应。执行也没有终止。
    • 如果没有看到您的实际代码,很难判断。怎么给ls命令?
    【解决方案2】:

    您为什么要自己实施 Telnet?有几个库做得很好。看雅加达网包:http://commons.apache.org/net/

    【讨论】:

    • 他使用 org.apache.commons.net.telnet.TelnetClient 只是为了简洁省略了 import 语句。
    猜你喜欢
    • 2013-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-23
    • 2013-08-23
    • 2016-03-31
    • 1970-01-01
    • 2014-03-07
    相关资源
    最近更新 更多