我使用socket_accept(socket)创建了一个包含10个可能客户端的套接字服务器。 现在最多可以连接10次。
第一个客户端向服务器提交消息后出现问题
$data = @socket_read($clients[$i]['socket'], 1024, PHP_NORMAL_READ);
然后脚本尝试通过socket_accept和socket_read再次侦听客户端和消息,但所有socket_accept-requests都失败并显示错误字符串“Invalid argument”。
var_dump表示该参数是类型(Socket)的资源(14)。
已连接的客户端可以继续使用“服务器”脚本,因为没有任何事情发生并保持连接。只有新客户端无法连接,端口似乎关闭(没有telnet和netcat请求可能 - 连接被拒绝)
任何想法都会有所帮助。谢谢!
答案 0 :(得分:0)
发现我假设在调用套接字处理程序类的析构函数时断开所有套接字 - 一旦子进程关闭就终止所有连接。
从析构函数中删除socket_shutdown()和socket_close()解决了这个问题。