• swoole之建立 tcp server


    一、swoole的安装

    参照官网:https://wiki.swoole.com/wiki/page/6.html

    二、代码部分

    服务端:

    <?php
    
    $host = "127.0.0.1";
    $port = 9501;
    $mode = SWOOLE_PROCESS; // 多进程模式 默认
    $sock_type = SWOOLE_SOCK_TCP; // 创建tcp socket 默认
    //创建Server对象,监听 127.0.0.1:9501端口
    $serv = new swoole_server($host, $port, $mode, $sock_type);
    
    $serv->set([
        // ps aft | grep php 查看
        'worker_num' => 4, // worker进程数 cpu核数的1-4倍
        'max_request' => 10000,
    ]);
    
    //监听连接进入事件
    /**
     * $fd 客户端连接的唯一标识符
     * $reactor_id 线程id
     */
    $serv->on('connect', function ($serv, $fd, $reactor_id) {
        echo "Client: {$fd} - {$reactor_id} - Connect.
    ";
    });
    
    //监听数据接收事件
    $serv->on('receive', function ($serv, $fd, $reactor_id, $data) {
        $serv->send($fd, "Server: {$fd} - {$reactor_id} - ".$data);
    });
    
    //监听连接关闭事件
    $serv->on('close', function ($serv, $fd) {
        echo "Client: {$fd} - Close.
    ";
    });
    
    //启动服务器
    $serv->start();

    客户端:

    <?php
    // 连接 tcp server服务器
    $client = new swoole_client(SWOOLE_SOCK_TCP);
    if (!$client->connect('127.0.0.1', 9501)) {
        exit("connect failed. Error: {$client->errCode}
    ");
    }
    // php cli常量
    fwrite(STDIN, "请输入消息:");
    $msg = trim(fgets(STDOUT));
    // 发送消息get tcp server 服务器
    $client->send("{$msg}
    ");
    // 接收来自server的数据
    echo $result = $client->recv();
    $client->close();

    也可通过 命令行:

    # telnet 127.0.0.1 9501

    进行测试

     

  • 相关阅读:
    保持简单----纪念丹尼斯•里奇(Dennis Ritchie)
    转:有关retina和HiDPI那点事
    Powershell 学习
    Windows与Linux共享文件夹互相访问
    你知道C语言为什么会有“_”(下划线)吗?
    百度公共DNS
    AXIS2的一些认识
    待整理
    java复习汇总之面试篇
    落网歌曲图片下载
  • 原文地址:https://www.cnblogs.com/cshaptx4869/p/10813160.html
Copyright © 2020-2023  润新知