我的代码是这样的:
if( ($this->master=socket_create(AF_INET,SOCK_STREAM,SOL_TCP)) < 0 )
{
die("socket_create() failed, reason: ".socket_strerror($this->master));
}
当我运行我的php文件与web套接字创建连接时,我收到错误 致命错误:在行中调用未定义的函数socket_create() if(($ this-&gt; master = socket_create(AF_INET,SOCK_STREAM,SOL_TCP))&lt; 0)
因此我无法连接网络套接字,也无法从套接字获取响应消息,因为在运行客户端页面时,我的浏览器中显示套接字状态:3(已关闭)。
你知道缺少什么吗? 提前谢谢。
答案 0 :(得分:58)
答案 1 :(得分:34)
对于Windows上的典型XAMPP安装,您可能在C:\ xampp \ php \ ext目录中有php_sockets.dll。您要做的就是转到C:\ xampp \ php目录下的php.ini,并将;extension=php_sockets.dll
更改为extension=php_sockets.dll
。
答案 2 :(得分:1)
在服务器环境中打开php.ini
文件,然后从;
中删除;extension=sockets
。如果不起作用,则必须下载PHP的socket
扩展名并将其放在php安装路径的ext
目录中。重新启动http服务器,一切正常。
答案 3 :(得分:1)
如果使用的是xampp 7.3.9。插座已安装。您可以检查xampp \ php \ ext,您将获得php_socket.dll。如果知道的话,请转到xampp控制面板,打开php.ini文件,然后从 extension = sockets中删除(;)。
答案 4 :(得分:0)
如果您使用的是openSuse或SUSE,请按照以下步骤操作。
如果尚未安装php7,请安装它。
zypper in php7
如果已安装php7,请使用以下命令进行更新:
zypper update php7
安装php7-sockets
zypper in php7-sockets
答案 5 :(得分:0)
我的.env
文件未正确设置时出现此错误。确保您拥有一个带有有效数据库登录凭据的.env
文件。