Избегайте всплывающих окон Windows Firewall с сокетами на локальном хосте - PullRequest
12 голосов
/ 31 июля 2010

Я написал простое Java-приложение, которое взаимодействует с несколькими его экземплярами с помощью сокетов. Первый экземпляр автоматически берет на себя роль сервера, прослушивающего определенный порт, и все последующие экземпляры подключаются к нему.

Проблема, с которой я столкнулся, заключается в том, что брандмауэр Windows выскакивает, спрашивая меня, хочу ли я разблокировать программу от «принятия входящих сетевых подключений». Дело в том, что не имеет значения, если вы оставите приложение заблокированным , потому что экземпляры приложения всегда находятся на одном компьютере, поэтому оно всегда будет работать.

Мой вопрос: могу ли я как-то сообщить Windows, что я даже не хочу принимать входящие сетевые подключения?

1 Ответ

13 голосов
/ 31 июля 2010

Используйте трехпараметрический конструктор класса ServerSocket, чтобы также указать IP-адрес, который должен прослушивать сервер. Таким образом, вы можете ограничить сервер прослушиванием только 127.0.0.1, в отличие от значения по умолчанию 0.0.0.0. См. этот связанный вопрос SO , для получения более подробной информации.

РЕДАКТИРОВАТЬ : предпочтительно использовать InetAddress.getByName (null) для получения локального адреса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...