TelnetClient java流

时间:2014-06-08 13:34:15

标签: java sockets inputstream telnet

TelnetClient telnet = new TelnetClient();
    telnet.connect( "192.168.0.6", 23 );
    PrintWriter out =
            new PrintWriter(telnet.getOutputStream(), true);

    DataInputStream in =
            new DataInputStream(telnet.getInputStream());


        BufferedReader stdIn =
            new BufferedReader(
                new InputStreamReader(System.in));

        String userInput;
        byte buffer[] = new byte[1024];
        int bytesRead;

        while ((bytesRead=in.read(buffer,0,1024)) != -1) { // read from server


            System.out.print(new String(buffer, 0, bytesRead, "UTF-8"));
            userInput = stdIn.readLine();
            if (userInput != null) {
                out.println(userInput);
                out.flush();
            }


        }
    telnet.disconnect();

您好,我在连接服务器时遇到此程序的问题。 这个程序应该允许我启动到服务器的telnet连接并向它发送一些命令并返回这些结果,但是当我开始连接时,它只返回我的服务器的HELLO(欢迎使用Microsoft Telnet服务)而不是包括登录在内的整个消息: 当我发送命令时,这些命令的响应会被延迟。 例如,我写" DIR"只有当我按两次输入时才会写入响应... 哪里错了?请帮帮我。

1 个答案:

答案 0 :(得分:0)

当尝试使用基于会话协议的协议(Telnet,FTP,SSH ..)连接到网络服务时,需要保持连接活动并与服务交互,建议使用可用的Java API而不是重新发明轮子(仅当你被要求没有第三方库时),在你的情况下你可以使用Apache Common Net提供一组有用的功能来连接到使用许多网络协议(包括Telnet)的服务器。