<?php $path = __DIR__ . "/unix_sock"; @unlink($path); $rs = socket_create(AF_UNIX, SOCK_DGRAM, 0) or die("socket_create err"); socket_bind($rs, $path) or die("socket_bind err"); $data = [ "name" => [], "buffer_size" => 2000, "controllen" => socket_cmsg_space(SOL_SOCKET, SCM_RIGHTS, 3) ]; print_r($data); $r = socket_recvmsg($rs, $data, 0); if ($r) { print_r($data); $ret = fwrite($data['control'][0]['data'][0], date('Y-m-d H:i:s') . " receive \n"); if ($ret) { echo "write success {$ret} \n"; } else { echo "write fail \n"; } } else { echo 'receive fail'; }
<?php $path = __DIR__ . "/unix_sock"; $sends1 = socket_create(AF_UNIX, SOCK_DGRAM, 0) or die("socket_create err"); $f = fopen(__DIR__.'/s.txt','aw+'); fwrite($f,date('Y-m-d H:i:s')." send \n"); $data = [ "name" => ["path" => $path], "iov" => ["info"], "control" => [ [ "level" => SOL_SOCKET, "type" => SCM_RIGHTS, "data" => [$f] ] ] ]; print_r($data); $r = socket_sendmsg($sends1, $data, 0);
運行php
- php receive.php - php send.php