博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用swoole编写简单的echo服务器
阅读量:6571 次
发布时间:2019-06-24

本文共 1910 字,大约阅读时间需要 6 分钟。

server.php代码如下:

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代码如下:

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  

运行结果如下:

转载于:https://www.cnblogs.com/jkko123/p/6524280.html

你可能感兴趣的文章
LeetCode --- Pascal's Triangle II
查看>>
java对象引用,对象赋值
查看>>
mate标签
查看>>
FLUSH TABLES WITH READ LOCK 和 LOCK TABLES比较
查看>>
MYSQL 事务测试
查看>>
mysql插入中文报错的问题
查看>>
Web Socket 长连接
查看>>
windows网络函数
查看>>
MySQL:创建、修改和删除表
查看>>
安装配置管理 之 linux下通过ndiswrapper及linux-wlan-ng安装无线网卡
查看>>
Java多线程程序设计详细解析
查看>>
IOS 7 Study - UISegmentedControl
查看>>
八、通用类型系统
查看>>
3. 线程和进程
查看>>
css中的单冒号和双冒号
查看>>
JQuery的ajaxFileUpload的使用
查看>>
Java分享笔记:使用keySet方法获取Map集合中的元素
查看>>
浏览器内核差异
查看>>
微信小程序实战--开发一个简单的快递单号查询
查看>>
keepalive脑裂的处理,从节点发现访问的虚拟IP就报警,同时尝试发送内容到主节点服务器关闭keepalive和nginx,或者关机...
查看>>