运行 Windows cmd 中的服务器

Run server in cmd in Windows

我在 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`

为什么会这样?我需要编辑 windows 中的任何设置吗?它似乎可以通过浏览器工作,但我需要通过 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 。

如果已经检查过,请通知我。

第二种方式,在管理员权限中调用phpCMD命令line.So请在'Run In Administrator'模式下打开您的cmd。

并且请在 c:\wamp\bin\php\php5.x.y\php.ini 中手动更改您的 php_sockets 扩展名。基本上删除';' ';php_sockets.dll' 行的开头。如果不存在,请添加扩展名 php_sockets.dll 的行尾。因为 cli-php 调用了不同的 php.ini 文件。