当前位置:首页 > PHP教程 > php高级应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2022-02-19 09:31:58 浏览: 评论:0 

这篇文章主要介绍了PHP使用swoole编写简单的echo服务器,结合实例形式分析了基于swoole的echo服务器客户端与服务器端相关实现技巧及操作注意事项,需要的朋友可以参考下。

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

server.php代码如下:

  1. <?php 
  2. class EchoServer { 
  3.   protected $serv = null; 
  4.    
  5.   public function __construct() { 
  6.     $this->serv = new swoole_server('0.0.0.0', 8888); 
  7.     //配置参数 
  8.     $this->serv->set(array
  9.       'worker_num' => 4, 
  10.       'daemonize' => 0, 
  11.     )); 
  12.     //注册回调函数 
  13.     $this->serv->on('start'array($this'start')); 
  14.     $this->serv->on('connect'array($this'connect')); 
  15.     $this->serv->on('receive'array($this'receive')); 
  16.     $this->serv->on('close'array($this'close')); 
  17.     //启动服务 
  18.     $this->serv->start(); 
  19.   } 
  20.    
  21.   public function start($serv) { 
  22.     echo "start \n"
  23.   } 
  24.    
  25.   //有客户端连接时 
  26.   public function connect($serv$fd) { 
  27.     echo "connect \n"
  28.     $serv->send($fd"hello \n"); 
  29.   } 
  30.    
  31.   public function close($serv$fd) { 
  32.     echo "close \n"
  33.   } 
  34.    
  35.   public function receive($serv$fd$from_id$data) { 
  36.     echo "get message {$fd} : {$data} \n"
  37.     //向客户端发送信息 
  38.     $serv->send($fd$data . "\n"); 
  39.   } 
  40.    
  41. $serv = new EchoServer(); 

client.php代码如下:

  1. <?php 
  2. class EchoClient { 
  3.   protected $client = null; 
  4.    
  5.   public function __construct() { 
  6.     //注意这里需设置为异步,不然下面无法设置事件回调函数 
  7.     $this->client = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_ASYNC); 
  8.    
  9.     $this->client->on('connect'array($this'connect')); 
  10.     $this->client->on('receive'array($this'receive')); 
  11.     $this->client->on('close'array($this'close')); 
  12.     $this->client->on('error'array($this'error')); 
  13.     //连接服务端 
  14.     $this->client->connect('0.0.0.0', 8888); 
  15.   } 
  16.    
  17.   public function connect($client) { 
  18.     echo "connect \n"
  19.   } 
  20.    
  21.   public function receive($client$data) { 
  22.     echo "server send: {$data}"
  23.    
  24.     //向标准输出写入数据 
  25.     fwrite(STDOUT, "请输入消息:"); 
  26.     //获取标准输入数据 
  27.     $msg = trim(fgets(STDIN)); 
  28.     //向服务端发送数据 
  29.     $client->send($msg); 
  30.   } 
  31.    
  32.   public function close($client) { 
  33.     echo "close \n"
  34.   } 
  35.    
  36.   public function error($client) { 
  37.     echo "error \n"
  38.   } 
  39.    
  40. $cli = new EchoClient(); 

然后分别运行这两个脚本

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

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

运行结果如下:

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

Tags: swoole echo服务器

分享到: