Как проверить есть ли в ObjectInputStream новые данные?
Есть соединение клиент-сервер. Когда клиент подключается, его подключение добавляется в список подключений и начинается прослушивание входящего потока, так-же ставится флаг socket.setKeepAlive(true), то-же самое делается у клиента (только слушается одно соединение). Когда сервер получает объект, который ему передал клиент (обмен идет общим классом Paket) - он отправляет его в обработку, в результате ответ может прийти, а может и не прийти (в зависимости от данных в пакете), то-же делается у клиента.
Теперь суть запроса - как определить когда в ObjectInputStream появляются данные (и ?
Делал так: object_input_stream.available() > 0
Результата не получил.
Этого никак не сделать при помощи стандартных стримов. Так что есть два варианта: отдельный thread который постоянно читает из ObjectInputStream и складывает результаты в коллекцию, либо использовать java.nio.
Пример не могу привести, ибо будет куча коду. Могу сказать ка примерно такой код будет выглядеть.
java.nio позволяет проверять если на SocketChanel есть какая-либо данные или нет. Эти данные считываются в структуру ByteBuffer. Когда у вас считаны все данные обьекта их можно перевести в ByteArrayInputStream над которым уже можно использовать ObjectInputStream.