Socket. Отловить обрыв связи

Ответить
sitevRu
Сообщения: 3
Зарегистрирован: 22 ноя 2013, 09:22

Socket. Отловить обрыв связи

Сообщение sitevRu » 21 янв 2014, 08:39

Как отловить обрыв связи сокетов?


Аватара пользователя
ivannatobedev
Сообщения: 30
Зарегистрирован: 03 дек 2014, 13:27

Re: Socket. Отловить обрыв связи

Сообщение ivannatobedev » 17 мар 2015, 11:02

у меня к примеру не всегда выбрасывается экзепшн. Но я не SocketException бросаю, а IOException. Плюс UnknownHostException и чтоб стопудово Exception. Сокет открыт, я в него спокойно записываю и знать не знаю что связь разорвана. В первой моей версии класса по работе с сервером я использовал setSoTimeout(); и оно как то прокатывало (я отлавливал разъединение). Сейчас код переписал и этот вариант уже ничего не ловит, либо вообще сам рвет соединение (а мне нужно держать его всегда). Ломаю голову как отловить разрыв и сделать корректный реконнект. Приложение должно быть рассчитано на плохой интернет(частые переподключения) и должно работать как часы.

vergiliy
Сообщения: 9
Зарегистрирован: 25 дек 2014, 19:41

Re: Socket. Отловить обрыв связи

Сообщение vergiliy » 03 дек 2015, 16:23

ivannatobedev писал(а):у меня к примеру не всегда выбрасывается экзепшн. Но я не SocketException бросаю, а IOException. Плюс UnknownHostException и чтоб стопудово Exception. Сокет открыт, я в него спокойно записываю и знать не знаю что связь разорвана. В первой моей версии класса по работе с сервером я использовал setSoTimeout(); и оно как то прокатывало (я отлавливал разъединение). Сейчас код переписал и этот вариант уже ничего не ловит, либо вообще сам рвет соединение (а мне нужно держать его всегда). Ломаю голову как отловить разрыв и сделать корректный реконнект. Приложение должно быть рассчитано на плохой интернет(частые переподключения) и должно работать как часы.
Я тоже пытаюсь сделать приложение на сокетах. использую библиотеку autobahn. На эмуляторе все как часы работает, а на реальном телефоне соединение разрывается а сервис этого не ловит... Сервис работает, не падает... проверка isConnect говорит что все подкл.

Ответить