阅读TCP消息

时间:2015-03-11 08:20:45

标签: android sockets tcp client

我有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();

但它对我不起作用:它没有打印任何东西。 所以我也尝试了没有循环的代码,它也没有用。

我该如何更改?我需要从服务器监听消息序列,例如:

  • HELLO FROM SERVER
  • 现在我发送数据
  • 这是位置之前的消息
  • 在特殊代码中的位置

我需要如何更改代码? 谢谢

1 个答案:

答案 0 :(得分:0)

readLine()仅在流结束时返回null:也就是说,当对等方关闭连接时。

可能你应该一次阅读和写一行,但它是你的应用程序协议:只有你真的知道。