1
  • 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

探索者
352 声望17 粉丝