Android:使用Socket的Telnet - 缺少最后一行

时间:2011-09-25 22:52:54

标签: android sockets telnet readline

我正在尝试为Android编写一些MUD客户端,并且我遇到了来自服务器输出的问题。我无法让我的应用程序在控制台中显示最后一行(登录提示)..

try {
        Socket socket = new Socket("studnia.mud.pl", 4004);
        OutputStream out = socket.getOutputStream();
        PrintWriter output = new PrintWriter(out);
        output.println("Siema, pisze klient mudowy pod androida wiec nie bijcie że testuje na studni. :(");

        BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        String line="1";
        while(line!=null){
            line = input.readLine();
            Log.i("Socket", line);
        }
        socket.close();
    } catch (UnknownHostException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

1 个答案:

答案 0 :(得分:0)

readLine()不返回登录提示行,因为此行尚未完成 - 在输入登录名之前没有行终止字符。为了获得提示的部分行,您无法使用readLine();尝试使用while (input.ready()) { int c = input.read(); ... }input.read(cbuf, 0, len)