note 40195 added to function.socket-create-pair
| From: | RamonHerrerainAustin at rn2 dot php dot net | Date: | Tue, 24 Feb 2004 23:54:07 +0000 |
| Subject: | note 40195 added to function.socket-create-pair | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-65677@lists.php.net to get a copy of this message | ||
#!/usr/local/bin/php -q
<?
/* HERE'S A CORRECTED VERSION OF THE IPC EXAMPLE.
THE ORIGINAL CODE LACKED A COUPLE OF CLOSING PARENTHESES (AND NEWLINE CHARS FOR NICE OUTPUT).
*/
$ary = array();
$strone = "Message From Parent.";
$strtwo = "Message From Child.";
if(!socket_create_pair(AF_UNIX, SOCK_STREAM, 0, $ary))
echo socket_strerror(socket_last_error());
$pid = pcntl_fork();
if($pid == -1) {
echo "Could not fork Process.\n";
} elseif( $pid ) {
/*parent*/
socket_close($ary[0]);
if(!socket_write($ary[1], $strone, strlen($strone)))
echo socket_strerror(socket_last_error());
if(socket_read($ary[1], strlen($strtwo), PHP_BINARY_READ) == $strtwo)
echo "Received $strtwo\n";
socket_close($ary[1]);
} else {
/*child*/
socket_close($ary[1]);
if(!socket_write($ary[0], $strtwo, strlen($strtwo)))
echo socket_strerror(socket_last_error());
if(socket_read($ary[0], strlen($strone), PHP_BINARY_READ) == $strone)
echo "Received $strone\n";
socket_close($ary[0]);
}
usleep(1000); // THIS LETS THE SHELL PROMPT COME BACK CLEANLY.
?>
----
Manual Page -- http://www.php.net/manual/en/function.socket-create-pair.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+40195
Delete -- http://master.php.net/manage/user-notes.php?action=delete+40195&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+40195&report=yes
Search -- http://master.php.net/manage/user-notes.php