Java запуск ServerSocket на ПК - PullRequest
0 голосов
/ 26 января 2020

Распространенная проблема для обычного проекта: я пытаюсь запустить программу ServerSocket Java на моем локальном компьютере P C и подключиться к нему с Android клиента. Как и другие, опыт go проходит гладко, когда клиент подключается к локальному адресу (например, 192.168.xxx.xxx). Если я попытаюсь подключиться через inte rnet, ничего не произойдет:

Теперь вот что я попробовал:

  • Создание правил входящих / исходящих сообщений в Windows Брандмауэр для allow traffi c для порта сервера (3000)
  • Использовал publi c IP в клиентском сокете (полученный здесь IP)
  • Настройка переадресации портов на моем маршрутизаторе: входящее соединение на порту 3000 перенаправлены на локальный IP-адрес сервера (например, снова 192.1686.xxx.xxx)
  • Проверьте, что IP-адрес сервера прослушивает порт 3000 с помощью «netstat -anp tcp».
  • На всякий случай отключил брандмауэр на моем маршрутизаторе.

Тем не менее, соединение отсутствует. Используя этот инструмент (https://www.canyouseeme.org/), я попытался проверить, виден ли порт (конечно, с запущенным приложением сервера), но ничего, все, что я получаю, это время ожидания.

I У меня нет выбора, я надеялся, что кто-нибудь покажет мне, что мне не хватает.

Спасибо.

1 Ответ

0 голосов
/ 26 января 2020

(1) Ваш P C, на котором работает ваш сервер, имеет общедоступный c IP? Если вы не подали заявку на него и выполняете код в домашней или рабочей среде, ваш компьютер имеет только частный IP-адрес. И учитывая тот факт, что ваш сервер и клиент хорошо соединяются в одной локальной сети, проблема может быть в IP.

(2) Если у вас есть publi c Ip, ваш сервер прослушивает все IP адрес или просто локальная сеть? Убедитесь, что IP-адрес привязки сервера равен «0.0.0.0», и в конструкторе ServerSocket вы можете просто установить его на ноль.

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