zoukankan      html  css  js  c++  java
  • swoole查看子进程与主进程关系

    ps aft|grep tcp.php
    20688 pts/7    S+     0:00  \_ grep --color=auto tcp.php
    20450 pts/4    Sl+    0:00  \_ php tcp.php
    20451 pts/4    S+     0:00      \_ php tcp.php
    20453 pts/4    S+     0:00          \_ php tcp.php
    20454 pts/4    S+     0:00          \_ php tcp.php
    20455 pts/4    S+     0:00          \_ php tcp.php
    20456 pts/4    S+     0:00          \_ php tcp.php
    20457 pts/4    S+     0:00          \_ php tcp.php
    20458 pts/4    S+     0:00          \_ php tcp.php
    20459 pts/4    S+     0:00          \_ php tcp.php
    20460 pts/4    S+     0:00          \_ php tcp.php
    

    tcp.php

    <?php
    /**
     *User: lxw
     *Date: 2020-01-16
     */
    //创建Server对象,监听 127.0.0.1:9501端口
    $serv = new swoole_server("127.0.0.1", 9501);
    
    $serv->set(array(
        'worker_num'=>8, // worker 进程数 CPU 1~4 倍
        'max_request'=>1000
    ));
    
    /**
     * $fd:客户端连接的唯一标识
     * $reactor_id: 线程id
     */
    //监听连接进入事件
    
    //事件回调函数四种方法
    //1.匿名函数
    $a='hello';
    $b='world';
    $serv->on('Connect', function ($serv, $fd,$reactor_id) use($a,$b) {
        echo "Client: {$reactor_id} - {$fd} Connect -{$a}-{$b}.\n";
    });
    
    //2.类静态方法
    /*class A{
        static function client ($serv, $fd,$reactor_id) {
            echo "Client: {$reactor_id} - {$fd} Connect.\n";
        }
    }
    $serv->on('Connect', 'A::Client');*/
    //$serv->on('Connect', array('A','client'));
    
    
    //3.函数
    //function my_func($serv, $fd,$reactor_id){
    //    echo "Client: {$reactor_id} - {$fd} Connect 22.\n";
    //}
    //$serv->on('Connect', 'my_func');
    
    //4.对象方法
    /*class B{
        function client($serv, $fd,$reactor_id){
            echo "Client: {$reactor_id} - {$fd} Connect 22.\n";
        }
    }
    $obj=new B();
    $serv->on('Connect', array($obj,'client'));*/
    
    
    //监听数据接收事件
    $serv->on('Receive', function ($serv, $fd, $reactor_id, $data) {
        $serv->send($fd, "Server: {$reactor_id} - {$fd} ".$data);
    });
    
    //监听连接关闭事件
    $serv->on('Close', function ($serv, $fd) {
        echo "Client: Close.\n";
    });
    
    //启动服务器
    $serv->start();
    
    
    //使用 telnet 127.0.0.1 9501
    // netstat -anp|grep 9501

    tcp_client.php

    <?php
    /**
     *User: lxw
     *Date: 2020-01-17
     */
    
    //连接 TCP 服务
    $client=new swoole_client(SWOOLE_SOCK_TCP);
    
    if (!$client->connect('0.0.0.0',9501)){
        echo '连接失败';
        exit();
    }
    
    //php cli 常量
    fwrite(STDOUT,'请输入消息:');
    $msg=trim(fgets(STDIN));
    
    //发送消息给tcp server 服务器
    $client->send($msg);
    
    //接受来自server 的数据
    $result=$client->recv();
    echo $result;

    赞赏码

    非学,无以致疑;非问,无以广识

  • 相关阅读:
    618狂欢结束,来聊聊华为云GaussDB NoSQL的蓬勃张力
    用GaussDB合理管控数据资源的几点心得
    边缘计算告诉你们公司空调怎么开最省钱
    应对高并发,服务器如何笑而不“崩”
    父亲节程序员硬核示爱:你能看懂几条
    Spring Boot 之Spring data JPA简介
    将Spring Boot应用程序注册成为系统服务
    Spring Boot Admin的使用
    Spring Boot devtool的使用
    Spring Boot国际化支持
  • 原文地址:https://www.cnblogs.com/lxwphp/p/15452795.html
Copyright © 2011-2022 走看看