共计 869 个字符,预计需要花费 3 分钟才能阅读完成。
- 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 |
正文完