3

我正在使用PHP-Websockets创建一个简单的聊天服务器。当我第一次运行在我的服务器上创建 websocket 的 php 脚本时,我的一切工作正常。如果脚本由于某种原因停止并且我尝试重新运行它,我会收到一条错误消息,指出脚本无法绑定套接字,因为它已经存在。

如何编写脚本来找到这个旧套接字(假设我知道它在哪个端口上运行)并关闭它以便建立新连接?

4

2 回答 2

2

如果您具有 shell 访问权限,我将使用以下命令来推断使用该套接字(端口)的进程的 PID。

netstat --tcp --listening --program

然后杀死那个进程。

kill %pid%

不过,为了防止这种情况发生,我会仔细检查您的脚本是否正常终止并首先关闭套接字。

于 2012-12-18T10:48:11.003 回答
0

在 Ubuntu(linux) 服务器上测试:

这是我解决它的方法:使用exec()函数,您可以轻松终止正在运行的 Web 套接字:让一个名为的 php 文件socketControl.php和代码:

exec('kill $(pidof php)');

这应该取消服务器中当前正在运行的 php websocket。

于 2021-01-07T23:09:04.880 回答