Swoole学习(七)Swoole之异步TCP服务器的创建

环境:Centos6.4,PHP环境:PHP7

复制代码
<?php
//创建TCP服务器
/**
 * $host 是swoole需要监听的ip,如果要监听本地,不对外服务,那么就是127.0.0.1;如果我要监听外网,比如我本地是192.168.9.155,我可以监听这个IP,如果本机分配的192.168.9.155的IP,外网在访问IP的时候,就可以相应对应的TCP服务。当然也可以同时监听多个IP
 */
/**
 * $port端口号。如果选择1024以下的端口号,需要root权限,如果swoole和php没有root权限,那就行不通。这里是9501端口
 */
//其实后面还有两个参数,一个是mode,一个是socke
//$mode默认是 SWOOLE_PROCESS 多进程方式
//$sock默认是SWOOLE_SOCK_TCP 默认TCP服务
//所以后面的两个参数可以不填写

$host = '0.0.0.0';
$port = 9501;
$server = new swoole_server($host, $port); //($host, $port, $mode, $sock)

//此时的TCP服务器是同步阻塞状态,下面我们就设置异步状态

//设置异步进程工作数量
$server->set(array('task_worker_num' => 4));

//投递异步任务(也就是接收到任务之后,把任务投递出去)
$server->on('receive', function($server, $fd, $from_id, $data){
    $task_id = $server->task($data); //异步ID
    echo "异步ID:" . $task_id . "\n";
});

//处理异步任务
$server->on('task', function($server, $task_id, $from_id, $data){
    echo "执行异步ID:" . $task_id;
    $server->finish("$data -> ok");
});
//处理结果
$server->on('finish', function($server, $task_id, $data){
    echo '执行完成'."\n";
});

$server->start();
复制代码

然后进入终端对应的文件所在目录,执行命令(这里文件名是index7.php)

# php index7.php       //开启服务
# ps -ajft              //查看进程状态

 

开始测试

OK~

 

posted @   温柔的风  阅读(635)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示