• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php进程之间共享socket资源

php 搞代码 3年前 (2022-03-01) 8次浏览 已收录 0个评论
  • receive.php
<code class="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
<code class="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

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php进程之间共享socket资源
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址