PHP使用swoole编写简单的echo服务器示例
更新时间:2020年03月11日 11:39:47 作者:怀素真
这篇文章主要介绍了PHP使用swoole编写简单的echo服务器,结合实例形式分析了基于swoole的echo服务器客户端与服务器端相关实现技巧及操作注意事项,需要的朋友可以参考下
本文实例讲述了PHP使用swoole编写简单的echo服务器。分享给大家供大家参考,具体如下:
server.php代码如下:
<?php
class 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代码如下:
<?php
class 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相关内容感兴趣的读者可查看本站专题:《PHP网络编程技巧总结》、《php socket用法总结》、《php面向对象程序设计入门教程》、《PHP数据结构与算法教程》及《php程序设计算法总结》
希望本文所述对大家PHP程序设计有所帮助。
相关文章
PHP与JavaScript针对Cookie的读写、交互操作方法详解
这篇文章主要介绍了PHP与JavaScript针对Cookie的读写、交互操作方法,结合实例形式分析了php与javascript设置cookie、php读取php及js设置的cookie、js读取php及js设置的cookie等相关操作技巧,需要的朋友可以参考下2017-08-08
php 调试利器debug_print_backtrace()
debug_print_backtrace() 是一个很低调的函数,很少有人注意过它. 不过当我对着一个对象调用另一个对象再调用其它的对象和文件中的一个函数出错时,它正在一边笑呢2012-07-07
PHP聚合式迭代器接口IteratorAggregate用法分析
这篇文章主要介绍了PHP聚合式迭代器接口IteratorAggregate用法,结合实例形式分析了聚合式迭代器接口IteratorAggregate的概念、功能、定义及使用方法,需要的朋友可以参考下2017-12-12
php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
asort() 函数对数组进行排序并保持索引关系。主要用于对那些单元顺序很重要的结合数组进行排序。可选的第二个参数包含了附加的排序标识2011-11-11


最新评论