Я написал клиент-серверное приложение Java с использованием сокетов. Я использую метод writeUnshared()
изObjectOutputStream
и readObject()
из ObjectInputStream
.
Теперь я хотел бы определить, когда соединение разорвано, чтобы восстановить соединение (например, когда сигнал Wi-Fi был потерян). В настоящее время для ObjectInputStream
я ловлю EOFException
, а для ObjectOutputStream
я ловлю IOException
, чтобы определить, не повреждена ли труба.
Это правильно или я должен поймать IOException
для обоих потоков?
IOException
для обоих потоков. Вы получитеEOFException
только в том случае, если одноранговый узел закрылся и результирующие передачи прошли успешно. Не при сбое сети. ВсеIOExceptions
, кромеSocketTimeoutException
, являются фатальными для соединения. - person user207421   schedule 25.03.2019