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