[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