В android приложении есть класс, который постоянно читает что-то из ssl socket. Чтение сделано в отдельном потоке через DataInputStream.readFully.
Время от времени при чтении выбрасывается EOFException, при этом сам сокет говорит isConnected() == true и isClosed() == false.
Как правильно обрабатывать эти исключения?
Пример кода, чтобы было понятнее о чем идет речь:
byte[] buf = new byte[1]{};
try {
inputStream = new DataInputStream(s.getInputStream());
while (!Thread.currentThread().isInterrupted() && s.isConnected()) {
inputStream.readFully(buf); // вот здесь кидается исключение
// какая-то обработка этого всего
}
} catch (IOException e) {
Log.e(LOG_TAG, "exception while reading: " + e);
e.printStackTrace();
}