PHP编程中,实现父子进程之间的通信,可以用streams直观实现,摘抄如下:
<?php
//生成一对套接字
// $sockets[0] 对应父进程,由子进程用来与父进程通信
// $sockets[1] 对应子进程,由父进程用来与子进程通信
$sockets = stream_socket_pair(STREAM_PF_UNIX, STREAM_SOCK_STREAM, STREAM_IPPROTO_IP);
$pid = pcntl_fork();
if ($pid == -1) {
die('could not fork');
} else if ($pid) {
//父进程
fclose($sockets[0]);
// 读写子进程对应的套接字
fwrite($sockets[1], "parent say : child PID $pid\n");
echo fgets($sockets[1]);
fclose($sockets[1]);
} else {
// 子进程
fclose($sockets[1]);
// 读写父进程对应的套接字
fwrite($sockets[0], "message from child\n");
echo fgets($sockets[0]);
fclose($sockets[0]);
}
?>