windows 搭建 swoole开发环境(官网已支持)

第一步下载:swoole官网下载 swoole-cli-v5.0.3-cygwin-x64.zip 只支持 64 位的系统
第二步解压到指定文件夹:E:\phpstudy_pro\WWW\swoole-cli-v5.0.3-cygwin-x64
第三步设置环境变量:把解压后的文件夹下的 bin 目录路径配置到系统的 Path 环境变量中,确定保存
第四步检查安装情况:打开CMD命令行输入:swoole-cli -v,安装成功
第五步:编写简单的TCP服务器代码:TCP.php

1. 服务端:

php 复制代码
<?php

class TCP
{

    private $server = null;

    public function __construct()
    {
        $this->server = new Swoole\Server('127.0.0.1', 9501);

        $this->server->set(array(
            'worker_num' => 4,     // 进程数
            'max_request' => 50,    // 每个进程最大接受请求数
        ));

        //监听连接进入事件。
        $this->server->on('Connect', [$this, 'onConnect']);

        //监听数据接收事件。
        $this->server->on('Receive', [$this, 'onReceive']);

        监听连接关闭事件。
        $this->server->on('Close', [$this, 'onClose']);

        //启动服务器
        $this->server->start();
    }

    public function onConnect($server, $fd)
    {
        echo "客户端id: {$fd}连接.\n";
    }

    public function onReceive($server, $fd, $reactor_id, $data)
    {
        $server->send($fd, "发送的数据: {$data}");
    }

    public function onClose($server, $fd)
    {
        echo "客户端id: {$fd}关闭.\n";
    }

}


new TCP();

运行:

2. 客户端:

php 复制代码
<?php

use Swoole\Coroutine\Client;
use function Swoole\Coroutine\run;

run(function () {
    $client = new Client(SWOOLE_SOCK_TCP);
    if (!$client->connect('127.0.0.1', 9501, 0.5)) {
        echo "connect failed. Error: {$client->errCode}\n";
    }

    fwrite(STDOUT, '请输入');
    $res = fgets(STDIN);
    $client->send($res);
    echo $client->recv();
    $client->close();
});

运行:

相关推荐
XLYcmy14 小时前
2026游戏安全技术竞赛-PC客户端安全-初赛 求解起点到终点的最短路径
windows·python·网络安全·dfs·bfs·游戏安全·曼哈顿距离
Jenlybein14 小时前
用 uv 替代 conda,速度飙升(从 0 到 1 开始使用 uv)
后端·python·算法
用户2986985301414 小时前
Java 提取 HTML 文本内容:两种轻量级实现方案对比
java·后端
程序边界14 小时前
行标识符的秘密:OID和ROWID的技术演进之路
后端
golang学习记14 小时前
Go 结构化日志新宠:`slog` 入门与实战指南(附避坑秘籍)
后端
一个人旅程~14 小时前
ARM版的windows(macbook虚拟机使用)在国内外技术平台有哪些版本可以选择?
windows·经验分享·macos·电脑
tltwuyulw15 小时前
Java的函数式编程(三)
java·后端
直奔標竿15 小时前
Java开发者AI转型第九课!突破知识边界!企业级 RAG (检索增强生成) 核心架构与 ETL 管道初探
java·开发语言·人工智能·后端·spring
skilllite作者15 小时前
SkillLite Rust 沙箱与 AI Agent 自进化实战指南
开发语言·人工智能·后端·架构·rust
Java女侠_9年实战15 小时前
为什么会丢精度?BigDecimal正确用法
后端