Я пытаюсь tcp подключиться к серверу в Java, используя его общедоступный i.p. но когда я запускаю клиентское приложение, я постоянно получаю сообщение об отказе в соединении. если я использовал localhost вместо публичного ip, он работает отлично.
Я ищу в Интернете несколько причин этой проблемы, но не могу ее исправить.
Я перенаправил порт на локальный IP-адрес моей машины (192.168.1.3) в настройках маршрутизатора. Затем я проверил, прослушивает ли порт, когда я запустил серверное приложение, используя netstat -an. я видел такие строки, как,
0.0.0.0:19999 или []: 19999.
19999 - это номер порта, который я пытаюсь прослушать. Затем я изменил свой конструктор ServerSocket на 3 параметра, который также привязывает локальный адрес.
InetAddress miad = InetAddress.getByAddress(addr);
ServerSocket socket1 = new ServerSocket(port,10,miad);
адрес - это InetAddress моей машины локальный ip. После этих изменений, когда я запускаю серверное приложение, я запускаю netstat, и он показывает:
TCP 192.168.1.3:19999 0.0.0.0 LISTENING
Здесь я думаю, что мой сервер прослушивает порт, указанный правильно.
Я также отключил брандмауэр и антивирусное программное обеспечение.
Я видел несколько тем и обсуждений в сети об этой проблеме и пробовал большинство упомянутых там вещей, но я получаю сообщение об ошибке «Отказано в соединении».
Что я могу делать не так? Он работает без каких-либо ошибок при тестировании с localhost.