以下のWebサイトのHTML5Websocketチュートリアルに従いました。
http://net.tutsplus.com/tutorials/javascript-ajax/start-using-html5-websockets-today/
それはうまくいきました、そして私はクライアント側のページでホスト値を「localhost:8080」から「218.175.192.160:8080」(私のIP)に変更しました、サーバー側はまだ「localhost:8080」を維持しました。
「 http://218.175.192.160:8080/client.html 」などのhttpプロトコルを使用してブラウザ(apache)でページを表示できますが、クライアント側のソケットは「ws」に接続できません。 ://218.175.192.160:8080/daemon.php "。(編集されたタイプミス)
私の質問は次のとおりです。1。クライアント側で、websocketが「ws://218.175.192.160:8080 / daemon.php」ではなく「ws:// localhost: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」は、実際にはLANカードインターフェイス上にあります。
基本的なネットワーク設定を忘れてすみません:(、この投稿が私のようなネットワーク初心者に役立つことを願っています、thx〜:)