- receive.php
<?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';}
- send.php
<?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 receive.php
- php send.php