[英]telnet connection inputstream blocking why?
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();
}
}
}
我想運行telnet執行一些命令我在連接到telnet時首先遇到兩個問題,它詢問我用戶名和密碼ı在輸入密碼后第二個問題inputstream不起作用,如何使用代碼來執行命令?readline一直為空可以解決這個問題。謝謝
我建議您使用Apache Commons Net Java庫( http://commons.apache.org/proper/commons-net/ ),其中包含用於許多Internet協議(包括Telnet)的各種客戶端。 我不建議您使用操作系統中的嵌入式telnet客戶端。 有了圖書館,一切都會變得更加干凈。
另外,在您的第一個while
循環中,您將在每次迭代中關閉writer
對象,並且您不會再使用reader
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.