1

从 Java 程序中,我想测试具有特定 IP 地址和端口的交换机是否可用于 telnet。所以计划运行telnet并退出。如果出现“无法打开连接”或“连接失败”的错误,我们无法访问交换机。如果没有给出任何错误,则可以通过 telnet 访问它。

我正在执行下面的代码,

Process p = Runtime.getRuntime().exec("cmd /C telnet "+IP+ " " +port );
//Process p = Runtime.getRuntime().exec("cmd /C ver");
p.waitFor();
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
in.close();

但无论是否可用,它都不会给出任何输出。当我在命令提示符下运行相同的 telnet 命令时,它工作正常。但不适用于java。

该声明,

Process p = Runtime.getRuntime().exec("cmd /C ver");

工作正常并返回版本。

我不知道我应该如何远程登录到交换机并退出并返回错误以查看它是否可用。

谢谢, Peeyush

4

1 回答 1

0

除了调用 telnet 命令,您可以在 java 中使用 Socket 并尝试打开到所需主机和端口的连接。如果不需要对控制代码进行特殊处理,这将适用于大多数情况。

作为替代方案:Apache Commons Net包含一个 java telnet 客户端库。

于 2013-05-29T07:40:52.733 回答