Ну, думаю, я наконец понял суть моей проблемы.Прежде всего, чтобы объяснить мою первоначальную проблему.Теперь я убежден, что устройство, к которому я подключаюсь, отключается от моего серверного приложения после 20 секунд (или около того) отсутствия чтения / записи.Таким образом, readline () будет ждать, пока эти 20 сработают, затем вернет все, что имеет, и в это время запись на устройство не будет разрешена.Однако, если я читаю все символы по одному (через read ()), он работает просто отлично, позволяет мне прочитать сообщение целиком и ждет последней итерации чтения цикла цикла read () для финала "-1 ", чтобы пройти, сигнализируя об окончании полезной нагрузки.Между этим временем (чтение первого символа и ожидание последнего символа) я анализирую полезную нагрузку и отправляю на устройство все, что захочу.Который по большей части получает.
Моя вторичная проблема заключалась в том, что иногда выходные потоки казались отключенными и никогда не позволяли мне больше отправлять сообщения.В исходном коде я заставил класс реализовать «Runnable».Это была ошибка.Я видел повсюду, что использование Runnable было предпочтительным способом сделать это, но я заметил, что OutputStream будет редко работать в этом случае, я переключился на расширение класса Thread, и он работает почти 100% времени.Я полагаю, что один поток перезаписывал выходной поток другого, затем следующий поток делал то же самое, а затем каждый из потоков не мог обмениваться данными через выходной поток.
После просмотра некоторых другихПримеры в Интернете, я предполагаю, что есть какой-то способ, которым я мог бы использовать Runnable, если бы захотел, но мне пришлось бы реорганизовать некоторые другие элементы в моем приложении.Мне придется еще кое-что почитать, прежде чем я вернусь по этому пути.
В любом случае, кажется, что в настоящее время он работает плавно и сейчас очень редко дает сбой.Я все еще хотел бы знать, почему это все еще иногда терпит неудачу, поэтому я продолжу изучать это, когда позволяет время.пишите в том же потоке ... это кажется совершенно неверным, а чтение и запись, кажется, работают просто отлично, пока я сначала читаю () (в отличие от readLine ()), прежде чем записать на устройство.