• swoole 实现 unixSocket 通信


    服务端

    <?php
    $socket = new CoSocket(AF_UNIX,SOCK_STREAM,0);
    $socket->bind("/tmp/server.sock");
    $socket->listen(2048);
    
    go(function ()use($socket){
        while(true) {
            echo "Accept: 
    ";
            $client = $socket->accept();
            if ($client === false) {
                var_dump($socket->errCode);
            } else {
                SwooleEvent::add($client,function($client){
                    if(!$client->checkLiveness()){
                        $client->close();
                        SwooleEvent::del($client);
                        return;
                    }
                    echo $client->fd."****".$client->recv().PHP_EOL;
                    $client->send("world");
                });
            }
        }
    });

    客户端

    <?php
    $socket = new CoSocket(AF_UNIX,SOCK_STREAM,0);
    
    go(function () use ($socket) {
        $retval = $socket->connect("/tmp/server.sock");
        while ($retval)
        {
            $socket->send("hello");
            $data = $socket->recv();
            echo "server recv: ".$data.PHP_EOL;
            if (empty($data)) {
                $socket->close();
                break;
            }
            co::sleep(1.0);
        }
    });
  • 相关阅读:
    Bot Style Tests VS Page Objects
    Qemu文档
    PlantUML
    include <xxx.h> 和 include "xxxx.h"的区别
    2021.40 喜欢当下
    2021.39 MIUI崩溃
    2021.38 聚焦
    2021.37 心流
    2021.36 负熵
    2021.35 精神熵
  • 原文地址:https://www.cnblogs.com/itsuibi/p/13620437.html
Copyright © 2020-2023  润新知