难以通过Java发送简单的telnet命令

时间:2015-04-06 10:19:43

标签: java command telnet

我正在运行一个侦听端口的进程,我想向该进程发送一些命令并使用以下方法显示其响应。这个方法可以被多次调用,所以我希望有短暂的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手动完成时,"主机可以访问")。当我再次调用它时,它什么也没显示。

上述代码有什么问题?我很难检测到它。

0 个答案:

没有答案