读取java readLine()中的响应结束

时间:2016-08-08 12:27:05

标签: java android ios sockets bufferedreader

    try {
                    input = new BufferedReader(new InputStreamReader(
                            mSocket.getInputStream()));
                    while (!Thread.currentThread().isInterrupted()) {
                        String messageStr = null;
                        messageStr = input.readLine();
                        if (messageStr != null) {
                            updateMessages(messageStr, false);
                        } else {
                            break;
                        }
                    }
                    input.close();
                } catch (IOException e) {
                    Log.e(CLIENT_TAG, "Server loop error: ", e);
                }

我在线程中使用上面的代码来接收来自套接字连接的响应 在Android中它正常工作,因为我使用out.println()来发送数据,但是当设备连接到ios并开始接收数据时,它无法识别结束,只有在连接关闭时才会收到。是否有除readLine()之外的其他方法以及如何在上述代码中使用。

1 个答案:

答案 0 :(得分:3)

这会更好。

try 
{
    input = new BufferedReader(new InputStreamReader(mSocket.getInputStream()));
    String messageStr = "";
    while (!Thread.currentThread().isInterrupted() && (messageStr = input.readLine()) != null) 
    {
        updateMessages(messageStr, false);
    }
    input.close();
} catch (Exception e) {
     Log.e(CLIENT_TAG, "Server loop error: ", e);
}