Хватит слушать порт - PullRequest
4 голосов
/ 28 июня 2010

У меня есть приложение, которое принимает SSL-соединения для определенного порта.Когда я останавливаю приложение из административной консоли Websphere, а затем снова запускаю его, я получаю исключение, которое жалуется на то, что порт все еще используется.Мне нужно полностью отключить и перезапустить Websphere, чтобы приложение снова заработало.

Как правильно прекратить прослушивание порта в Java?

Ответы [ 4 ]

2 голосов
/ 28 июня 2010

Создайте прослушиватель контекста и зарегистрируйте его в web.xml.Затем вы можете закрыть все свои открытые сокеты в вызове contextDestroyed().

Подробнее см.

http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere.base.doc/info/aes/ae/cweb_sctxl.html

2 голосов
/ 28 июня 2010

Я не уверен, как это делается в Java, но закрытие сокета (.close () на ServerSocket?) Закроет порт.Тем не менее, многие операционные системы не позволяют повторно использовать один и тот же порт в течение 30 секунд после его закрытия, чтобы предотвратить чтение старых сообщений новым соединением.

1 голос
/ 28 июня 2010

Просто закройте ручку гнезда, что-то вроде yourSocket.close(). Этот пример может помочь.

0 голосов
/ 29 июня 2010
ServerSocket ss = new ServerSocket();
ss.setReuseAddress(true);
ss.bind(port);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...