我在PHP中创建了一个简单的客户端服务器代码,并通过浏览器中的Wamp服务器本地主机运行它。它可以工作,但是当我在cmd中运行它时,输出如下所示:
c:'wamp'www'Converter>php testserver.php
PHP Fatal error: Call to undefined function socket_create() in C:'wamp'www'Converter'testserver.php on line 15
PHP Stack trace:
PHP 1. {main}() C:'wamp'www'Converter'testserver.php:0
Fatal error: Call to undefined function socket_create() in C:'wamp'www'Converter'testserver.php on line 15
Call Stack:
0.0005 248032 1. {main}() C:'wamp'www'Converter'testserver.php:0
c:'wamp'www'Converter>php ex3_server.php
PHP Fatal error: Call to undefined function socket_create() in C:'wamp'www'Converter'ex3_server.php on line 5
PHP Stack trace:
PHP 1. {main}() C:'wamp'www'Converter'ex3_server.php:0
Fatal error: Call to undefined function socket_create() in C:'wamp'www'Converter'ex3_server.php on line 5
Call Stack:
0.0002 232968 1. {main}() C:'wamp'www'Converter'ex3_server.php:0`
为什么会这样?我需要在窗口中编辑任何设置吗?它似乎可以通过浏览器工作,但我需要通过cmd运行服务器才能查看统计信息。我的服务器代码如下:
<?php
//server_side
$address="localhost";//your ip
$port="10012";//port number
$socket=socket_create(AF_INET,SOCK_STREAM,0);
if($socket)
echo "<br>Successfully socket created<br>";
else
echo "<br>Cannot create socket<br>";
$bind=socket_bind($socket,$address,$port);
if($bind)
echo "<br>Successfully binded to socket<br>";
else
echo "<br>Cannot bind socket<br>";
//listens for a connection on a socket
$listen=socket_listen($socket) or die ("could not setup");
if($listen)
echo "<br>Successfully listen connection<br>";
else
echo "<br>Cannot listen connection<br>";
//accepts a connection on a socket
$accept=socket_accept($socket) or die ("could not accept");
if($accept)
echo "<br>Successfully accepted request<br>";
else
echo "<br>Connot accept request<br>";
//send message 1
$message1="Hello Client";
$write=socket_write($accept,$message1);
//read reply2
$read2=trim(socket_read($socket,1024));
echo $read2."'n";
?>
您需要安装(或启用)Socket PHP 扩展:http://www.php.net/manual/en/sockets.installation.php
您可以在 wamp 上启用套接字扩展,Wamp 图标 -> PHP -> PHP 扩展 -> 检查php_sockets 。
如果已经检查过,请通知我。
第二种方式,在管理员权限CMD命令行中调用php。因此,请在"在管理员模式下运行"模式下打开您的cmd。
请在c:'wamp'bin'php'php5.x.y'php.ini
中手动更改您的php_sockets扩展名。基本上删除";php_sockets.dll
"行的开头的";"。如果不存在,请添加扩展php_sockets.dll
的行尾。使用 cli-php 调用不同的php.ini
文件。