Я пытаюсь подключиться к серверу на одном компьютере у себя дома с компьютера, подключенного к другому маршрутизатору. Я уже много часов работаю в Интернете и уже настроил переадресацию портов. Я уже пытался создать Socket с моим общедоступным IP-адресом и номером порта, но без успеха. Мой вопрос: знать мой публичный IP-адрес, локальный IP-адрес сервера и номер порта, как мне создать Socket, чтобы он правильно подключался к серверу?Подключение к серверу с клиента на другом маршрутизаторе
Эти конструкторы я пытался, но безуспешно:
new Socket(my_public_ip_address, port);
new Socket(my_local_ip_address, port); <- this one works only if both computers are connected to the same router
Заранее спасибо!
1. Можете ли вы добавить вывод ошибки/стек? 2. Является ли ваш клиентский компьютер в сети отображаемым вашим общедоступным IP-адресом (общедоступным маршрутизатором -> клиентом и общедоступным маршрутизатором -> вторым маршрутизатором -> сервером)? Возможно, вы не сможете подключиться к общему интерфейсу маршрутизатора с открытым IP-адресом из внутренней сети. Вы можете попытаться напрямую подключиться к внутреннему IP-адресу сервера или к «общедоступному» IP-адресу второго маршрутизатора. – Konrad
Проблема здесь почти наверняка заключается в том, что вы используете NAT в своем маршрутизаторе, что нарушает способность делать сквозные соединения. Код Java не имеет к этому никакого отношения. Вам необходимо настроить маршрутизатор, чтобы разрешить входящее соединение; Суперпользователь может быть для этого более полезным сайтом. – chrylis
Спасибо, много ребята за ваши быстрые ответы, я обязательно буду проверять все ваши предложения завтра! – andyfed