我遵循以下网站的
HTML5 Websocket教程:
它运行良好,然后在客户端页面将主机值从“localhost:8080”更改为“218.175.192.160:8080”(我的ip),服务器端仍然保留“localhost:8080”.
事实证明,我可以使用http协议(例如“http://218.175.192.160:8080/client.html”)在浏览器(apache)中查看页面,但是客户端的套接字无法连接到“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”,这是真的在lan卡接口.
对不起,我忘了基本的网络设置:(,希望这个帖子帮助网络新手像我,thx〜:)