Есть ли простой способ убедиться, что локальный порт еще не открыт. Некоторые серверы сокетов TCP (например, Grizzly) по-видимому не выполняют эту проверку по умолчанию. Когда эта проверка отсутствует, сервер начинает запускать и отвечать, но клиентский код просто подключается к старому серверу, который не был выключен. Это может быть очень плохо!Проверка локального TCP-порта не открыта в Java
Есть ли простая строка кода Java, которая может проверить, что порт еще не используется другим процессом?
Между двумя из них, возможно, лучше попробовать подключиться - открытие порта, скорее всего, откроет брандмауэр пользователя с предупреждением о том, что «приложение XYZ пытается прослушивать порт 1234 ...» –
Решение ServerSocket было довольно скользкий. Всплывающее окно брандмауэра прекрасное, так как программа все равно предоставит услугу на этом порту. Спасибо за вашу помощь. – User1
Просто заметьте: если вы попытаетесь подключиться к порту и выйти из строя, возможно, это связано с тем, что вы подключены к нему через брандмауэр. Просто потому, что вы не можете подключиться, это не значит, что он не используется. –