Я читаю данные с 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();
}
}