Я следил за учебником HTML5 Websocket на веб-сайте ниже:
http://net.tutsplus.com/tutorials/javascript-ajax/start-using-html5-websockets-today/
Это сработало хорошо, затем я изменил значение хоста с "localhost: 8080" на "218.175.192.160:8080" (мой ip) на клиентской странице, серверная сторона все еще сохраняла "localhost: 8080".
Оказывается, я могу просматривать страницу в браузере (apache) с помощью протокола http, например, http://218.175.192.160:8080/client.html ", однако, сокет на стороне клиента не может подключиться к" ws://218.175.192.160: 8080/daemon.php". (измененная опечатка)
мои вопросы: 1. на стороне клиента, почему websocket работает только на "ws://localhost: 8080/daemon.php", а не "ws://218.175.192.160: 8080/daemon.php"?
2. почему socket_bind ($ socket, "127.0.0.1", 8080) работает, но socket_bind ($ socket, "218.175.192.160", 8080) возникает ошибка? система напоминает "невозможно связать адрес [0]: запрошенный адрес недействителен в его контексте". Я уверен, что адрес Ip принадлежит моему серверу.
Пожалуйста, помогите, спасибо.
Я выяснил причину ошибки: привязка неверного адреса, потому что я использовал маршрутизатор, хотя я установил услугу NAT на маршрутизаторе, но я забыл, что адрес "218.175.192.160" принадлежит интерфейс маршрутизатора, а не моя серверная машина.
адрес серверной машины должен быть локальным типом адреса, например: "192.168.1.2", который действительно находится на интерфейсе локальной карты.
жаль, что я забыл основные сетевые настройки:(, надеюсь, этот пост поможет новичку в сети, как я, спасибо ~:)