Java telnet连接输入流阻塞为什么?
我想运行telnet执行一些命令我有两个问题首先当我连接到telnet时问我用户名和密码输入密码后如何继续使用代码执行命令我的第二个问题inputstream不工作readline一直是空的如何解决此问题。感谢hel我向您推荐ApacheCommonsNetJava库(),其中包含许多Internet协议的各种客户端,包括Telnet。我不建议您从操作系统使用嵌入式telnet客户端。有了图书馆,一切都会更干净Java telnet连接输入流阻塞为什么?,java,javascript,exec,inputstream,telnet,Java,Javascript,Exec,Inputstream,Telnet,我想运行telnet执行一些命令我有两个问题首先当我连接到telnet时问我用户名和密码输入密码后如何继续使用代码执行命令我的第二个问题inputstream不工作readline一直是空的如何解决此问题。感谢hel我向您推荐ApacheCommonsNetJava库(),其中包含许多Internet协议的各种客户端,包括Telnet。我不建议您从操作系统使用嵌入式telnet客户端。有了图书馆,一切都会更干净 另外,在第一个while循环中,每次迭代都会关闭writer对象,并且不会使用阅读器
另外,在第一个
while
循环中,每次迭代都会关闭writer
对象,并且不会使用阅读器进一步阅读 我搜索了commons.apache,但这对我来说很难理解,而且我未能将代码更改为我想要的代码,这就是为什么我选择该代码的原因库的javadoc()中解释了所有内容。如果您计划学习Java,您应该开始学习通过Javadocs来习惯库和API。因为您经常会同时面临这两个问题。OutputStream outtr=tc.getOutputStream();字节[]buff=新字节[1024];int ret_read=0;do{try{ret_read=System.in.read(buff);if(ret_read>0)在这个apache.common.telnet代码中,以字节为单位的代码read keybord您可以给出建议以读取我需要发送的字符串show ip ospf inter-brief命令解释如何执行此操作,但不是以编程方式。您可以使用以下方法:执行此操作。但是,您不能以编程方式执行此操作,这可能是您想要的。
package burak;
import java.io.*;
public class telcon {
public static void main(String[] args) {
try {
String[] command=new String[2];
command[0]="cmd /c start cmd.exe /k \"telnet\"";
command[1]="92.44.0.60";
Process p =Runtime.getRuntime().exec(command);
try {
p.waitFor();
} catch (InterruptedException e) {
System.out.println(e);
}
BufferedReader reader= new BufferedReader(new InputStreamReader(p.getInputStream()));
String line=null;
line=reader.readLine();
File file =new File("rapor.txt");
file.createNewFile();
FileWriter writer=new FileWriter(file);
StringBuilder responseData=new StringBuilder();
while(line!=null) {
System.out.println(line);
responseData.append(line);
writer.write(line);
writer.close();
}
BufferedReader stdInput=new BufferedReader(new InputStreamReader(p.getInputStream()) );
BufferedReader stdError=new BufferedReader(new InputStreamReader(p.getErrorStream()));
String Error;
while((Error=stdError.readLine())!=null) {
System.out.println(Error);
}
while((Error=stdInput.readLine())!=null) {
System.out.println(Error);
}
} catch(Exception e) {
e.printStackTrace();
}
}
}