【问题标题】:Telnet Java code working in Windows but not in UnixTelnet Java 代码在 Windows 中工作,但在 Unix 中不工作
【发布时间】:2017-05-19 02:23:02
【问题描述】:

我正在尝试通过SwitchClient 方法Telnet服务器 并使用密码进行身份验证。我写了2个方法,readUntil读取和遍历直到输出结束,write写入密码。

我正在使用 Spring Tool Suite 进行开发和构建 Jar 文件。此外,我在pom.xml 中使用 UTF-8 编码。这段代码在 Windows 机器中运行良好,而在 UNIX 中失败,write 方法出现“密码超时”并打印垃圾值。

一个有趣的事实:我尝试用这个独立的类文件创建一个 jar,并在 Unix 机器中执行。令我惊讶的是,它运行良好,没有任何问题。而从 Spring Tool Suite 创建的 jar 仍然无法正常工作。请帮忙。

public SwitchClient(String server, String user, String password) {
  try {         
    telnet.connect(server, 23);
    in = telnet.getInputStream();
    out = new PrintStream(telnet.getOutputStream(),false,"UTF-8");
    readUntil("Enter Password: ");
    write("password");
  } catch (Exception e) {
    e.printStackTrace();
  }
}

public String readUntil(String pattern) {
  try {
    char lastChar = pattern.charAt(pattern.length() - 1);
    StringBuffer sb = new StringBuffer();
    char ch = (char) in.read();
    while (true) {
      System.out.print(ch);
      sb.append(ch);
      if (ch == lastChar) {
        if (sb.toString().endsWith(pattern)) {
          return sb.toString();
        }
      }
    ch = (char) in.read();
    }
  } catch (Exception e) {
    e.printStackTrace();
  }
  return null;
}

public void write(String value) {
  try {
    out.println(value);
    out.flush();
  } catch (Exception e) {
    e.printStackTrace();
  }
}

【问题讨论】:

  • 提示:您希望我们花时间帮助您。因此,请您花 2 分钟时间正确格式化/缩进您的源代码;而不是在我们身上丢下这样的混乱
  • 关于您的实际问题:当您从 Unix 系统上的命令行打开一个 telnet 会话时 - 这有效吗?如果没有,请忘记从 Java 中执行此操作。你看,某处可能有一些防火墙阻止你访问那个远程服务器。
  • 我已经减少了过度格式化,并且提示:使用backticks 格式化代码,例如方法。尊重大小写约定也有助于提高可读性。
  • 对不起,我是新来这里的,因此错过了格式化。现已编辑。 @GhostCat,我可以在 unix 中手动输入密码。最重要的是,这段代码可以在我的 Windows 机器上完美运行。
  • 太棒了……那是一件好事!

标签: java unix pom.xml telnet spring-tool-suite


【解决方案1】:

我可以通过添加 write("\r\n"); 来解决这个问题。写入后(“密码”);

感谢大家的努力。 :-)

Please refer this URL

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-06
    • 2023-03-22
    • 1970-01-01
    • 2018-09-20
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多