Невозможно подключиться к другому компьютеру - PullRequest
0 голосов
/ 16 февраля 2012

Я немного отчаялся после нескольких часов исследований:

Компьютер под управлением Windows 7 с локальным приложением PHP, который прослушивает порт 12345 с сокетом.Из той же Windows 7:

  • Если я делаю telnet localhost 12345, php-код видит соединение.
  • Если я делаю telnet 127.0.0.1 12345,PHP-код видит соединение.
  • Если я делаю Telnet12345, php-код НЕ видит соединение.
  • Если я делаю telnet12345, php-код НЕ видит соединение.

С другой машины у меня вообще нет соединения, когда я использую IP или DNS-адрес.

Работа telnet с другого компьютера с тем же адресом, но на портах 80 или 21. работает отлично.

Даже при отключенном локальном брандмауэре / антивирусе я получаю тот же результат.
Я использую стандартный Apple TimeCapsuleв качестве точки доступа, но не настроен специально, не уверен, может ли это повлиять на порты> 1024 ...

Не могли бы вы мне помочь?
Спасибо!

Ответы [ 2 ]

2 голосов
/ 16 февраля 2012

На самом деле есть два варианта получения этого поведения, которые я вижу;

  • Ваш брандмауэр включен (который вы тестировали)
  • Вместо этого ваш сокет привязывается к 127.0.0.1вашего публичного IP.

Я бы посмотрел вашу локальную привязку, то есть адрес, который вы даете socket_bind().

Если написано «127.0.0.1», измените его на 0.

2 голосов
/ 16 февраля 2012

telnet 12345 пытается подключиться к машине, IP-адрес которой равен 12345 десятичный, то есть 0.0.4.210 в точечно-квадратичном формате Вы не можете использовать telnet таким образом - аргумент не может быть просто номером порта. Это будет интерпретироваться как IP.

...