Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Работа с сетью > SocketOutputStream.write


Автор: Гость_serge 28.4.2005, 10:00
Сервер завис при передаче данных апплету. (Данные передаются постоянно без разрыва соединения. Браузер тоже завис и где завис апплет не знаю.
Как определить зависание и возобновить соединение?

Автор: Domestic Cat 28.4.2005, 10:11
Запускать апплетвьювером, выводить что-нибудь в консоль, дебагить в конце концов.

Автор: AntonSaburov 28.4.2005, 15:53
Цитата
Как определить зависание и возобновить соединение?

Или отвалить по таймауту и снова соедениться.

Автор: Гость_serge 28.4.2005, 17:00
Убивать нить вообще-то не рекомедуется - а если она зависла в native-функции, то только
это с ней можно будет сделать. Желательно было бы иметь функцию типа available(), чтобы определить сколько байт беловасно записать или задать таймаут на запись. Если верить документации, то setSoTimeout() работает только на ввод. Что касается ошибок апплете, то сервер не должен зависать даже если они присутствуют, а клиент в принципе может быть написан и не на Java.

Автор: Guest 29.4.2005, 08:23
Апплет вешается на OutOfMemoryError. При нормальном его закрытии сервер получает ислючение java.net.SocketException: Connection reset, но до этого он висел. Анологичное происходит и в том случае, если имеется firewall, разрешающий загрузку апплета и запрашивающий разрешение на соединение по сокету.

Автор: rni 29.4.2005, 12:39
Может не хватает памяти для JVM - посмотри, сколько жрёт.

Автор: batigoal 29.4.2005, 13:08
Цитата(rni @ 29.4.2005, 12:39)
Может не хватает памяти для JVM - посмотри, сколько жрёт.

Тогда, по-моему, должно быть выброшено исключение "OutOfMemoryException". Или не всегда?

Автор: Domestic Cat 29.4.2005, 17:58
Попробуй переделать на десктопное приложение - будет работать или нет. Если бросает иксепшн- нужен код и трейс стека.

Автор: batigoal 29.4.2005, 19:58
Тьфу, черт пропустил пост насчет нехватки памяти...

Автор: Гость_serge 3.5.2005, 10:03
Где апплет жрет память - я и так знаю - хранит все сообщения принятые от сервера, я спрашивал про сервер

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)