我正在运行一个侦听端口的进程,我想向该进程发送一些命令并使用以下方法显示其响应。这个方法可以被多次调用,所以我希望有短暂的telnet会话'原样。
public String doAction(Message msg) {
try {
Socket sock = new Socket(TELNET_IP, TELNET_PORT);
PrintWriter out = new PrintWriter(sock.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
out.println("ping bbbb::1");
String res = in.readLine();
System.out.println(res);
out.close();
in.close();
sock.close();
return res;
} catch (IOException e) {
e.printStackTrace();
}
return null;
};
参数msg将包含几个字符串(例如" ping bbbb :: 1")但目前尚未使用。上述方法存在一些问题。 首次调用它时,它将打印默认的telnet消息"键入"关闭"退出"而不是ping的结果(当使用命令行使用telnet手动完成时,"主机可以访问")。当我再次调用它时,它什么也没显示。
上述代码有什么问题?我很难检测到它。