Как я могу подключиться к своему серверу на моем собственном компьютере с клиента на другом компьютере?

#java #sockets

#java #розетки

Вопрос:

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

Прямо сейчас я пытаюсь использовать общедоступный IP-адрес сервера для ПК (который я получил с whatsmyip.org ) в клиентском сокете: Socket sock = new Socket(HOST, PORT); где host — это общедоступный IP-адрес компьютера сервера.

Когда я тестировал его с помощью localhost и клиента, работающего на том же компьютере, соединение сработало.

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

Я прочитал в другом вопросе это (это был пример): «Ваш серверный КОМПЬЮТЕР находится в Нью-Йорке с IP 192.168.1.121, то есть за маршрутизатором с внутренним IP 192.168.1.1 и общедоступным IP 40.20.26.63. Вам нужно будет убедиться, что вы входите в маршрутизатор и перенаправляете порт 8084 (TCP) на внутренний адрес 192.168.1.121 (внутренний серверный компьютер) «. Как я могу это сделать? Я знаю общедоступный IP-адрес и внутренний IP-адрес сервера, но я не знаю, какой IP-адрес мне нужно ввести в клиентский сокет.

Заранее благодарю.

Комментарии:

1. Я не знаю, какой IP-адрес мне нужно ввести в клиентский сокет. Общедоступный IP-адрес.

2. Но я уже сделал это, и это дает мне исключение java.net.ConnectException: отказано в подключении: connect

3. Как вы сказали, вам нужно перенаправить соединение с общедоступного порта на ваш сервер. Вероятно, в приложении настройки маршрутизатора есть какая-то опция (поищите что-нибудь о NAT или «переадресации портов»). Но это выходит за рамки stackoverflow и, вероятно, более актуально для суперпользователя .

4. Идет ли переадресация портов в мой router conf и открывает там порты? если это так, я уже сделал это и ничего

5. Если клиент находится в вашей локальной сети, используйте свой IP-адрес 10.x.x.x. Особенно, если вы находитесь за брандмауэром, например, если вы находитесь в сети вашей компании, ваш общедоступный IP-адрес не имеет смысла.