Я пытался сделать программу чата с Java. мне удается, когда я использую IP 127.0.0.1 для подключения.

Сокет сокет = новый сокет ("127.0.0.1", 5005);

все это отлично работало на моем компьютере, и программа даже работала, когда я пытался соединиться между моим comupter и моим leptop, который использует тот же маршрутизатор. (Я сделал это, используя локальный IP-адрес.) Затем я хотел подключить компьютеры, которые используют другие маршрутизаторы, используя внешний IP. поэтому я читаю в Интернете и понимаю, что мне нужно переадресовать свой порт через маршрутизатор. У меня есть маршрутизатор Siemens ADSL Sl2-141. я переадресовал порт 5005, и моя программа чата все еще не работает. Я получаю ошибку «Отказ в соединении» снова и снова. я что то пропустил? Порт Siemens

2 ответа2

1

Во-первых, кажется, вы конфигурируете свой код для прослушивания только на локальном хосте, а не на внешнем адресе. Вместо этого используйте сокетное соединение: (согласно этому руководству)

РЕДАКТИРОВАТЬ (изменено в соответствии с комментариями ниже):

Socket socket = new Socket("PUBLIC_IP_ADDR",5005);

Где PUBLIC_IP_ADDR - ваш интернет-адрес, который вы можете найти здесь

Если вы все еще не можете установить соединение, убедитесь, что программа доступна и прослушивает ...

Руководство по проверке вашего порта

1) Если вы еще этого не сделали, просмотрите это руководство и подтвердите, что вы сделали все шаги.

2) Используйте этот инструмент, чтобы подтвердить, что ваш порт действительно открыт.

Если сбой # 2, то ваш порт на самом деле не открыт. ПК, который принимает соединение, активно прослушивает 5005?

Окна:

Start -> Run -> cmd
  netstat -an | find /i "5005"

Linux:

(From terminal)
  netstat -l | grep 5005

Если рядом с ним нет "LISTENING", значит ваше приложение не прослушивает соединения. Но я не подозреваю, что это проблема, так как вы можете сделать это на localhost.

Если это не помогло, убедитесь, что брандмауэр вашей ОС открыт.

Это обо всем, что я могу думать прямо сейчас

0

Что сказал @Brian. Ваш внутренний адрес, вероятно, неверен, если программа не запущена. Попробуйте заменить «127.0.0.1» внутренним («10.whothing») адресом, а затем по-прежнему запускать его с того же компьютера. Если это работает, только тогда вы должны попробовать это с другого компьютера. Если он заблокирован с другого компьютера в той же подсети, то, скорее всего, у вас установлен программный брандмауэр ("Защитник Windows" или что-то подобное), который блокирует внешние соединения.

Проблема области действия по-прежнему остается: если вам нужна помощь в настройке вашего роутера, то Google, а затем superuser.com - это то, что нужно спросить. Если вам нужна помощь с программированием, то для этого и предназначен этот сайт.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .