Sockets Example
require('deep_thought.php');
$deepThought = new DeepThought();
$forks = array();
$sockets = array();
for ($i=0; $i < 5; $i++) {
socket_create_pair(AF_UNIX, SOCK_STREAM, 0, $sockets);
$forks[] = $pid = pcntl_fork();
if ($pid) {
$socketPairs[$pid] = $sockets;
} else {
$data = $deepThought->findTheAnswer();
writeToSocket($data, $sockets[0]);
die();
}
}
do {
$pid = pcntl_wait($status);
$forks = array_diff($forks, array($pid));
$sockets = $socketPairs[$pid];
$data = readFromSocket($sockets[1]);
var_dump($data);
} while (count($forks) > 0);
Monday, 8 October 12