Exemple #1
1
<?php

include __DIR__ . "/mcast_helpers.php.inc";
$path = __DIR__ . "/unix_sock";
@unlink($path);
echo "creating send socket\n";
$sends1 = socket_create(AF_UNIX, SOCK_DGRAM, 0) or die("err");
var_dump($sends1);
socket_set_nonblock($sends1) or die("Could not put in non-blocking mode");
echo "creating receive socket\n";
$s = socket_create(AF_UNIX, SOCK_DGRAM, 0) or die("err");
var_dump($s);
$br = socket_bind($s, $path) or die("err");
var_dump($br);
socket_set_nonblock($s) or die("Could not put in non-blocking mode");
$r = socket_sendmsg($sends1, ["name" => ["path" => $path], "iov" => ["test ", "thing", "\n"], "control" => [["level" => SOL_SOCKET, "type" => SCM_RIGHTS, "data" => [$sends1, STDIN, STDOUT, STDERR]]]], 0);
var_dump($r);
checktimeout($s, 500);
$data = ["name" => [], "buffer_size" => 2000, "controllen" => socket_cmsg_space(SOL_SOCKET, SCM_RIGHTS, 3)];
var_dump($data);
if (!socket_recvmsg($s, $data, 0)) {
    die("recvmsg");
}
print_r($data);
error_reporting(0);
$path = __DIR__ . "/unix_sock";
@unlink($path);
Exemple #2
-1
 /**
  * (PHP 5 &gt;=5.5.0)<br/>
  * Read a message
  *
  * @link http://www.php.net/manual/en/function.socket-recvmsg.php
  *
  * @param resource $socket
  * @param string   $message
  * @param int      $flags [optional]
  *
  * @return int
  */
 public function receiveMessage($socket, $message, $flags)
 {
     return socket_recvmsg($socket, $message, $flags);
 }