PHP使用swoole编写简单的echo服务器示例

2020-09-01 12:34:34

本文实例讲述了PHP使用swoole编写简单的echo服务器。分享给大家供大家参考,具体如下:

server.php代码如下:

<?phpclass EchoServer {  protected $serv = null;   public function __construct() {    $this->serv = new swoole_server('0.0.0.0', 8888);    //配置参数    $this->serv->set(array(      'worker_num' => 4,      'daemonize' => 0,    ));    //注册回调函数    $this->serv->on('start', array($this, 'start'));    $this->serv->on('connect', array($this, 'connect'));    $this->serv->on('receive', array($this, 'receive'));    $this->serv->on('close', array($this, 'close'));    //启动服务    $this->serv->start();  }   public function start($serv) {    echo "start n";  }   //有客户端连接时  public function connect($serv, $fd) {    echo "connect n";    $serv->send($fd, "hello n");  }   public function close($serv, $fd) {    echo "close n";  }   public function receive($serv, $fd, $from_id, $data) {    echo "get message {$fd} : {$data} n";    //向客户端发送信息    $serv->send($fd, $data . "n");  }} $serv = new EchoServer();

client.php代码如下:

<?phpclass EchoClient {  protected $client = null;   public function __construct() {    //注意这里需设置为异步,不然下面无法设置事件回调函数    $this->client = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_ASYNC);     $this->client->on('connect', array($this, 'connect'));    $this->client->on('receive', array($this, 'receive'));    $this->client->on('close', array($this, 'close'));    $this->client->on('error', array($this, 'error'));    //连接服务端    $this->client->connect('0.0.0.0', 8888);  }   public function connect($client) {    echo "connect n";  }   public function receive($client, $data) {    echo "server send: {$data}";     //向标准输出写入数据    fwrite(STDOUT, "请输入消息:");    //获取标准输入数据    $msg = trim(fgets(STDIN));    //向服务端发送数据    $client->send($msg);  }   public function close($client) {    echo "close n";  }   public function error($client) {    echo "error n";  }} $cli = new EchoClient();

然后分别运行这两个脚本

> /data/php56/bin/php server.php> /data/php56/bin/php client.php

运行结果如下:

PHP使用swoole编写简单的echo服务器示例

PHP使用swoole编写简单的echo服务器示例

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP网络编程技巧总结》、《php socket用法总结》、《php面向对象程序设计入门教程》、《PHP数据结构与算法教程》及《php程序设计算法总结》

希望本文所述对大家PHP程序设计有所帮助。

相关文章 大家在看