Как проверить, был ли получен конец сообщения на клиенте сокета на Android? - PullRequest
0 голосов
/ 03 июня 2019

Я читаю данные с InputStream с BufferedInputStream с socket.getInputStream().Когда длинное сообщение получено, оно разделяет сообщение на разные куски из-за буфера.Все, что мне нужно сделать, это проверить, был ли получен конец сообщения (\r) или нет.Итак, я отправляю дополнительный возврат каретки с сервера сокетов.

Ниже приведен фрагмент кода: но он не работает

    while ((i = inputStream.read(byteMessage)) != -1 && socket.isConnected()) {
        byteMessage = Arrays.copyOfRange(byteMessage, 0, i);
        String temp = new String(byteMessage);
        messageBuilder.append(temp);
        if (temp.toCharArray()[i - 1] == '\r') {
            Log.d(TAG, messageBuilder.toString());
            messageBuilder = new StringBuilder();
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...