【发布时间】:2013-02-23 14:20:55
【问题描述】:
我正在尝试为我正在处理的一个小项目创建一个 Web 套接字服务器。
我已经设置了服务器(位于家里)并转发了 80 和 22 端口。我阅读了本教程:here
每当我 ssh 进入我的服务器以运行“startDarmon.php”时,我都会收到以下错误:
PHP Warning: socket_bind(): unable to bind address [98]: Address already in use in
/var/www/server/socket.class.php on line 48
2013-02-23 14:15:38 System: Socket bound to localhost:8000.
2013-02-23 14:15:38 System: Start listening on Socket
我认为这是阻止我的客户端连接到服务器的原因。所以在 startDarmon.php 文件中我有:
$WebSocket = new socketWebSocket('MY_IP_NOT_LAN_IP',8000);
在我的客户端文件中,我有:
var host = "ws://MY_IP_NOT_LAN:8000/server/startDaemon.php";
有人对为什么这不允许我建立连接有任何建议吗?
【问题讨论】:
-
据我所知你不需要这个
server/startDaemon.php -
@Dharman 你是什么意思?服务器将如何启动?因为在客户端,
var socket = new WebSocket(host)还是需要主机] -
ws://MY_IP_NOT_LAN:8000这足以获得连接。但是,这并不能解决您的问题,它基于服务器端 -
尝试在不同的端口上运行它(你需要在你的路由器上做端口转发)
-
@Dharman 我在另一个端口上运行了它,现在它可以工作了。 "Socket bound to localhost:3132", "开始监听 Socket。"但是,当我进入我的客户端时,它不想连接..只是挂起..但我还没有将端口 3132 转发到我的服务器(LAN IP),所以这是个好主意吗?
标签: php linux webserver websocket