使用swoole实现tcp服务端

<?php
class TCP{
    private $server=null;
    public function __construct()
    {
        $this->server=new Swoole\Server("127.0.0.1",19501);
        $this->server->set(array(
            'reactor_num'   => 2,     // reactor thread num
            'worker_num'    => 4,     // worker process num
            'max_request'   => 50,
        ));
        //监听连接进入事件
        $this->server->on("Connect",[$this,"onConnect"]);
        ///监听数据接收事件
        $this->server->on("Receive",[$this,"onReceive"]);
        //监听连接关闭事件
        $this->server->on("Close",[$this,"onClose"]);
        //启动TCP服务器
        $this->server->start();
    }

    /**
     * 监听TCP客户端连接回调方法
     * @param $server
     * @param $fd  TCP客户端连接的标识符
     */
    public function onConnect($server,$fd){
        echo "Client: Connect.\n";
    }

    /**
     * 监听TCP客户端数据回调方法
     * @param $server
     * @param $fd TCP客户端连接的标识符
     * @param $reactor_id $reactor_id是来自于哪个reactor线程
     * @param $data  客户端发过来的数据
     */
    public function onReceive($server,$fd,$reactor_id, $data){
        //收到数据在次发给客户端
        $server->send($fd, "Server: {$data}");
        echo "收到客户端".$fd."的数据数据是".$data;
    }

    /**
     * 监听TCP客户端断开回调方法
     * @param $server
     * @param $fd  TCP客户端连接的标识符
     */
    public function onClose($server,$fd){
        echo "Client: Close.\n";
    }
}

new TCP();


猜你喜欢

转载自blog.csdn.net/weixin_45576276/article/details/113757593