PHP网络编程
文章摘要:本文描述了通过php访问服务器后台进程的两种方法.
方法一: socket
PHP编译选项中需要增加--enable-sockets
<?php
/*
* client.php
* 连接至服务器,发送一个HelloWorld,并等待主机回应
*/
$host="localhost"; //服务器地址(支持域名)
$port=9999;
set_time_limit(0); //PHP脚本运行的最大时间
//创建一个socket
$socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP)
or die("cannot create socket\n");
$conn = socket_connect($socket,$host,$port)
or die("cannot connect server\n");
if($conn)
{
echo "client connect ok!";
}
socket_write($socket,"hello world!")
or die("cannot write data\n");
$buffer = socket_read($socket,1024,PHP_NORMAL_READ);
if($buffer)
{
echo "response was:".$buffer."\n";
}
socket_close($socket);
?>
方法二: fsockopen
阿里云服务器不支持--enable-sockets选项,主要采用fsockopen来替代
<?php
/*
* client.php
* 连接至服务器,发送一个HelloWorld,并等待主机回应
*/
$host = 'i.mcucode.cn';
$port = 9999;
$buff = 'Hello World';
//打开SOCKET
$fp = @fsockopen($host, $port);
if (!$fp)
{
echo '<b>错误:</b> 无法连接到 '.$host.'<br>';
}
else
{
@fputs($fp,$buff);
$result = @fgets($fp, 1024);
@fclose($fp);
echo $result;
}
?>