java - 如何在Java中通过telnet执行open命令?

标签 java windows

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/

相关文章:

windows - 如何复制整个目录结构?

java - Powermockito 私有(private)方法模拟 NullPointerException。调用私有(private)方法

java - 从文本文件中逐行读取并将每行保存到数组中的不同单元格

java - 无效的未知请求错误 : Cannot determine request type. 这个广告单元 ID 是否正确?

windows - 在 Windows 命令行上伪造标准输入

c# - ASP.NET,401 - 未经授权,有效帐户

windows - Windows 开发平台和 Linux 测试平台之间接口(interface)的最佳方式?

php - windows中php 5.2.17的inet_pton替换函数

java - Maven 没有运行 cucumber 测试

java - 将毫秒转换为特定格式的日期