我希望从我的 telnet 套接字输入中解析“艺术家 - 标题”。现在它只显示最后一行“END”。我做错了什么?我是初学者,需要 java.pls 帮助...
我的 Activity 脚本可以工作:
try {
Socket s = new Socket("10.0.2.2", 5555);
BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(s.getOutputStream(), "ISO8859_1"));
String on_air = "request.on_air" + System.getProperty("line.separator");
out.write(on_air);
out.flush();
Log.i("TcpClient", "sent: " + on_air);
String on_airin = in.readLine() + System.getProperty("line.separator");
Log.i("TcpClient", "received: " + on_airin);
String metadata = "ao.metadata "+ on_airin + System.getProperty("line.separator");
out.write(metadata);
out.flush();
Log.i("TcpClient", "sent2: " + metadata);
String metadatain = in.readLine() + System.getProperty("line.separator");
Log.i("TcpClient", "received: " + metadatain);
String line = in.readLine();
while (line != null) {
line = in.readLine();
System.out.println(line);
output = (TextView) findViewById(R.id.textView2);
output.setText(line);
//tv.setText(online + formatedDate );
output = (TextView) findViewById(R.id.textView1);
s.close();
}} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
我的系统.out.println http://pastebin.com/SkfiPXar
最佳答案
在打印之前执行额外的readLine()
。折叠这三行:
String line = in.readLine();
while (line != null) {
line = in.readLine();
进入
String line = null;
while ((line = in.readLine()) != null) {
此外,您似乎在 while
循环内关闭了 Socket
,这可能会导致问题。
关于java - 解析套接字输入字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13140956/