swoole查看子进程与主进程关系「建议收藏」

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

swoole查看子进程与主进程关系「建议收藏」

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;

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111763.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 您不具有该 Vuser 类型的许可证. 请与 HP Software 联系以更新许可证.

    您不具有该 Vuser 类型的许可证. 请与 HP Software 联系以更新许可证.

    2021年7月17日
    61
  • navicat 激活码【2021免费激活】

    (navicat 激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlS32PGH0SQB-eyJsa…

    2022年3月26日
    92
  • python解压bz2文件命令_解压缩bz2文件

    python解压bz2文件命令_解压缩bz2文件bz2.compress/decompress使用二进制数据:>>>importbz2>>>compressed=bz2.compress(b’test_string’)>>>compressedb’BZh91AY&SYJ|i\x05\x00\x00\x04\x83\x80\x00\x00\x82\xa1\x1c\x00\…

    2022年6月5日
    70
  • 9_商品详情页面解决方案

    9_商品详情页面解决方案需求分析当搜索商品时,显示商品的详细信息,同时选择不同的sku,进行不同的数据显示解决方案商家更改数据微服务,通过消息队列MQ监听到发生变化,微服务调用者使用Thymeleaf模板,生成相应的静态页面,储存在本地磁盘,当用户发送请求到微服务时,使用nginx技术进行相应页面的返回商品详情页面静态化1、建Module:supergo_page2、改pom<?xmlversion=”1.0″encoding=”UTF-8″?><projectxmlns=”http

    2022年6月25日
    24
  • 图片加载失败占位符[通俗易懂]

    图片加载失败占位符[通俗易懂]当网络不佳加载图片时会出现加载失败或者延时加载的情况,此时原本的图片位置会显示空白状态,这造成了不好的用户体验,所以我们需要加一个图片占位符。有两种方式可以实现:js其实这种方式也很简单,监听onerror事件就可以了。举个栗子:<imgsrc=”http://xxxx”onerror=”{this.src=’/statictest.png’}”/>监听onerror…

    2022年6月2日
    80
  • labelme教程_label shop

    labelme教程_label shopdelete删除标签时,不再弹出对话框找到./python/site-packages/labelme/app.pydefdeleteSelectedShape(self):self.remLabels(self.canvas.deleteSelected())self.setDirty()ifself.noShapes():foractioninself.actions.onShapesPresent:..

    2022年9月3日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号