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

read end of response in java readLine()

    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() 之外还有其他方法吗以及如何在上面的代码中使用。

这样效果会更好。

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);
}