Показать сообщение отдельно
Старый 14.10.2013, 15:36
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 4  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
А какой интервал времени стоит на пинг? Ну, с какой частотой сервер пингует?
Я просто скомуниздил идею с юнион платформы
Поэтому у меня как у них 900 милисекунд (и 6000 на ожидание ответа). Но это значение указывается в xml файле настроек сервера, так что всегда можно легко поменять.
Цитата:
upd: И все равно понять не могу, поможет ли мне пинг. Допустим сервер отправил пинговый байт в оба соединения, разорванное и нормальное. Из нормального ответ вернулся, значит все в порядке. Но из разорванного-то ответ не вернется, соответственно функция select не вернет мне этот сокет в списке готовых на чтение. Можно бегать по всему списку работающих сокетов, проверяя по времени, не вернулся ли ответ, скажем через минуту. Но тогда select теряет смысл.
Что-то недопонял. А зачем бегать по списку? У меня все эти операции выполняются в классе обертке. Ну, то есть внутри одного экземпляра, который держит сокет, и проиходит его общение с клиентом и проверки на валидность подключения. Для удаления этого экземпляра из общего списка, если соединение отвалилось, посылается событие ClientEvent.DISCONNETED. Систему событий написал подобную флешевой, только попроще (ну привык я так ), по этому событию экземпляр просто сносится из карты хэшей менеджером подключений, и дергается метод dispose()