Модераторы: javastic, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> периодически отваливаются j2me-клиенты 
:(
    Опции темы
andrewjr20
Дата 10.7.2012, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 11.2.2012

Репутация: нет
Всего: нет



Добрый день
Имеется сервер (асинхронные сокеты, C#, создан на основе этого примера), и клиенты на j2me (midp 2.0, cldc 1.0, на основе клиент-серверного примера NetworkingDemo).
Чтобы отслеживать, живы ли клиенты, завёл список на сервере, и раз в 20 секунд заставил клиентов посылать некую строку, увеличивая время последней активности в списке, сам же сервер раз в 10 секунд проверяет список, не превысило ли время последней активности минуту - и если минуту клиент неактивен (батарея села, или ещё какая-проблема, при которой клиент отключен, но на сервере исключение не выскочило), клиент удаляется из списка и сокет принудительно закрывается.
Но довольно часто бывает так, что клиент жив, сеть работает, но вышеозначенные пинги от него перестают идти - сервер его рубит, и на клиенте идёт обработка ошибки 10054 (что опять-таки подтверждает нормально функционирующую сеть). Перестают уходить пинги хоть сразу же после авторизации клиента, хоть через 5 минут, а могут только через полтора часа.
До ввода этой системы пингов была немного другая система: сам сервер по своему списку сокетов просто отсылал некую строку, чтобы (в случае долгого периода неактивности на телефоне) поддерживать соединение и не быть отключенным оператором. Но даже тогда с той же непонятной периодичностью клиенты отваливались.
Уже не знаю, что можно сделать, чтобы при наличии постоянного соединения с интернетом клиенты так же стабильно были подключены к серверу.. Заранее спасибо за помощь, если нужна какая-то дополнительная информация - обязательно напишу. 
PM MAIL   Вверх
oxigen
Дата 11.7.2012, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 12.4.2010

Репутация: 4
Всего: 4



Не совсем понятен один момент.
Но довольно часто бывает так, что клиент жив, сеть работает, но вышеозначенные пинги от него перестают идти
А на клиенте что при этом происходит? Я так понял, что Вы по TCP общаетесь. 
Клиент отправил TCP пакет. Дальше он или получит ACK от сервера или выдаст IOException. 

Кстати что насчет wifi соединения или симулятора? То же самое происходит?

 
PM MAIL   Вверх
andrewjr20
Дата 13.7.2012, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 11.2.2012

Репутация: нет
Всего: нет



По тому непонятному моменту: на телефоне (по описаниям клиентов) в этот момент просто переставали обрабатываться объекты command, то есть пытается человек нажать кнопку и отправить данные, а телефон не реагирует в течение нескольких секунд, а потом ошибка 10054 и выключение. 
Но на деле - вина оператора (beeline), который ровно через полтора часа активного подключения при небольшом трафике, меньшем 1-1,5 МБ (сам не замерял, прочёл в интернете) отключает соединение - на телефоне на пару секунд выскакивает сообщение "пакетное подключение закрыто сетью", и связь обрубается. Проверял подобный момент на агенте mail.ru - ситуация аналогичная, но агент после такого дисконнекта предлагает переподключиться, что я и добавил в свой мидлет, так что вопрос можно считать закрытым smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.0806 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.