Process P = Runtime.getRuntime().exec("cmd /c start telnet");
System.out.println("done running ..");
OutputStream output = P.getOutputStream();
BufferedOutputStream out = new BufferedOutputStream(output);
String S = "open\n"; byte[] BS = S.getBytes();
out.write(BS); out.close();
上面的代码并没有执行telnet下的open命令。
我做错了什么?
最佳答案
你怎么知道?由于您没有获取输入流,因此您永远不会看到 telnet 应用程序的输出(或错误响应)。您确实需要连接所有三个(输出、输入和错误),并且您可能需要一个单独的线程来读取输入和错误流。这应该能让您在这个问题上取得一些进展。
由于您事先不知道有多少字符从输入流(或 telnet 的输出)中出来,因此您需要仅读取由stream.available() 给出的字符数,或者简单地读取一次读取一个字节,直到得到 -1。
关于java - 如何在Java中通过telnet执行open命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1674325/