[mdk-re] Socket problem
Roman S
=?iso-8859-1?q?rromas_=CE=C1_mailru=2Ecom?=
Пн Апр 23 21:18:00 MSD 2001
On Mon, 23 Apr 2001 16:08:40 +0400
Alex Ryabchikov <chico на mail.spbnit.ru> wrote:
> Спасибо за ответ! Однако я наверно не совсем точно описал проблему - попробую
> поподробнее! Использую я значит в работе IBM VisualAge For Java (Linux port).
> Прога великолепная! Из ide я запускаю свое серверное приложение которое
> открывает серверный сокет и ждет соединений клиента. Но когда сервер
> заканчивает свою работу - сокет _НЕ ЗАКРЫВАЕТСЯ_. Соответсвенно повторный
> запуск вызывает ошибку мол что сокет уже используется! Конечно я понимаю что
> это ошибка VisualAge'a однако мне кажется что в Линуксе должны быть какие то
> средства что бы насильно освободить сокет.
> Спасибо если кто ответит! :)
Я давно не брал в руки этой шашки, но посмотрите
netstat -le | less
90% моей уверенности, что держит сокет VA IDE.
Насколько я помню (могу ошибаться по причине склероза) ежели вызвать проект из оболочки, то он будет работать в VM, встроенной в оболочку (для скорости и отладочных функций).
Т.е. сокет остаётся за Java VM, и остаётся, пока она не завершится...
Осталось решить, глюк это или фича (для пост-отладки).
90% вероятности, что если запустить приложение как java -jar something.jar, то сокут отвалится вместе с завершением программы.
И наверняка закроется, если выйти из IDE.
Средств "насильно" закрыть ресурс чужого процесса я не знаю. Пристрелить процесс - это пожалуйста, вмешиваться насильно в работу другого процесса и заблокированные им ресурсы - ни-ни.
А так... - закрывайте за собой... В приложении.
--
Rgds!
Roman Savelyev
Подробная информация о списке рассылки community