我有TCP连接问题(我已经使一个类扩展了Thread)。我已经用这段代码实现了读取部分:
byte[] bytes = new byte[1000];
StringBuilder reader = new StringBuilder();
int numRead = 0;
if ((numRead = socket.getInputStream().read(bytes)) >= 0)
{
reader.append(new String(bytes, 0, numRead));
}
这是我的应用程序唯一的代码。昨天我写了这段代码:
BufferedReader in = new BufferedReader(new
BufferedReader(socket.getInputStream()));
StringBuilder str = new StringBuilder();
String msg;
while(msg=in.readLine() != null) //I also tried while (msg != "")
{
str.append(msg);
}
Log.d("String:",str.toString();
但它对我不起作用:它没有打印任何东西。 所以我也尝试了没有循环的代码,它也没有用。
我该如何更改?我需要从服务器监听消息序列,例如:
我需要如何更改代码? 谢谢
答案 0 :(得分:0)
readLine()
仅在流结束时返回null:也就是说,当对等方关闭连接时。
可能你应该一次阅读和写一行,但它是你的应用程序协议:只有你真的知道。