Невозможно подключить клиентскую программу к серверной программе через WAN - PullRequest
0 голосов
/ 14 апреля 2020

Я создал клиент-серверную программу на языке java с классами serversocket и socket с datainputstream и dataoutputstream для отправки и получения данных.

Но проблема в том, что когда я запускаю его в локальной сети (локальная сеть) или на локальном хосте, он работает правильно, но когда я пытаюсь соединить клиента с сервером через глобальную сеть (WAN), он даже не подключается к сервер

И для подключения через WAN я ввел ip-адрес программы на стороне сервера в качестве параметра подрядчика класса сокетов, например: socket s = новый сокет (ipadd, порт); и он не подключается к серверу без каких-либо ошибок или чего-либо

Поэтому, пожалуйста, помогите мне, я застрял на этой проблеме в течение длительного времени.

Это мой программный код на стороне сервера this is my server side program

Это мой программный код на стороне клиента this is my client side program code

1 Ответ

0 голосов
/ 15 апреля 2020

Вы используете свой мобильный телефон для предоставления inte rnet вашему серверу (который является вашим ноутбуком в вашем случае), поэтому здесь ваш мобильный телефон выступает в качестве маршрутизатора, а ваш мобильный телефон предоставляет локальные IP-адреса для устройств, которые подключаются к этому. Итак, что происходит, когда вы вводите IP-адрес вашего ноутбука (сервера) в клиентском приложении для запуска соединения, и ваш компьютер не имеет IP-адреса в publi c (у него есть IP-адрес, который назначается вашим мобильным телефоном, но он не является общедоступным, и это локальный IP-адрес, который обычно начинается с 192.168 ........), поэтому клиентское приложение не может обнаружить ваш сервер и серверы, подключенные к маршрутизаторам, применяются в их случае.

Таким образом, решение этой проблемы заключается в том, что вы вводите IP-адрес своего мобильного телефона (который предоставляет inte rnet вашему серверу) в ваше клиентское приложение, и с любым приложением перенаправления портов вы выполняете переадресацию портов на ваш сервер (который является вашим ноутбуком). ) IP-адрес (и это локальный IP-адрес, назначенный вашим телефоном / маршрутизатором вашему ноутбуку) и порт (который вы используете для связи с клиентом), и в магазине Google Play доступно множество приложений для переадресации портов, вы можете использовать любой из них , Итак, в вашем случае необходимо установить соединение с клиентом и сервером:

1: установить и запустить любое приложение для переадресации портов на телефоне из магазина мобильных телефонов. 2: невозможна переадресация порта (для каждого запроса, поступающего на IP-адрес вашего мобильного телефона) на IP-адрес вашего сервера (который назначается вашим мобильным телефоном вашему серверу). 3: Затем введите IP-адрес вашего мобильного телефона в клиентском приложении.

И он подключится к вашему серверу ...

...