![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
samolisov |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 13.1.2010 Репутация: нет Всего: нет |
Здравствуйте, коллеги.
Пишу библиотеку, реализующую ICQ-протокол. Возникла проблема отслеживания обрыва соединения с сервером. Понятно, что во-первых в диалоге может быть пауза, во-вторых, соединение может быть просто разорвано и нужно отличать эти две ситуации. Для этого советуют использовать схему "пинг-понг", но сервер ICQ такую схему не реализует. В то же время, например PSI (jabber-клиент) умеет сразу же обнаруживать разрыв соединения. Вопрос такой: как с помощью Java (Socket API или что-то другое) отследить момент разрыва соединения? Если, например, писать в сокет после разрыва соединения, то никаких IOException не генерируется. В то же время делать ping с помощью ICMP-пакетов в Java вроде бы нельзя (если не использовать напрямую команду ОС ping, но это нежелательно). Буду благодарен за любую помощь. |
|||
|
||||
COVD |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 11 Всего: 43 |
На самом деле сообщения пишутся в буфер, а сокет пытается доставить их получателю. Если лимит неудач будет достигнут, то соединение будет признано разорванным и вот тогда уже запись вызовет исключение. |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 19 Всего: 538 |
Должно. А flush() вызываете? И ОС какая? -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Работа с сетью | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |