美文网首页
swoole入门

swoole入门

作者: IT小池 | 来源:发表于2019-04-22 20:47 被阅读0次

    首先创建一个tcp服务器:

    //创建Server对象,监听 127.0.0.1:9501端口
    $serv = new swoole_server("127.0.0.1", 9501); 
    
    // 设置参数
    $serv->set(array(
        'worker_num' => 4,    //worker process num
        'max_request' => 5000,
    ));
    
    //监听连接进入事件
    // $fd就是客户端连接的唯一标识符
    // $reactor_id 线程id
    $serv->on('connect', function ($serv, $fd, $reactor_id) {  
        echo "Client: Connect.\n";
    });
    
    //监听数据接收事件
    $serv->on('receive', function ($serv, $fd, $from_id, $reactor_id,$data) {
        $serv->send($fd, "Server: ".$data);
    });
    
    //监听连接关闭事件
    $serv->on('close', function ($serv, $fd) {
        echo "Client: Close.\n";
    });
    
    //启动服务器
    $serv->start(); 
    

    然后使用命令行执行

    php tcp.php
    

    然后在新开一个命令行,执行:

    # 检测端口是否启动
    netstat -anp | grep 9501
    # 链接 tcp 服务器
    telnet 127.0.0.1 9501
    

    命令行查看线程数:

    ps aft | grep tcp.php
    
    swoole客户端链接

    创建 swoole_client.php,内容如下:

    <?php
    // swoole 内置常量 SWOOLE_SOCK_TCP
    $client = new swoole_client(SWOOLE_SOCK_TCP);
    if (!$client->connect('127.0.0.1', 9501, -1))
    {
        echo '链接失败';
        exit("connect failed. Error: {$client->errCode}\n");
    }
    
    // php 内置常量 STDOUT STDIN
    fwrite(STDOUT,''请输入消息);
    $msg = trim(fgets(STDIN));
    // 发送给 tcp 服务器 
    $client->send($msg);
    
    // 接收 tcp 服务器返回的数据
    echo $client->recv();
    
    $client->close();
    

    相关文章

      网友评论

          本文标题:swoole入门

          本文链接:https://www.haomeiwen.com/subject/wutpgqtx.html