一、 swoole 扩展安装

安装前必须保证系统已经安装了下列软件

  • php-7.0 或更高版本
  • gcc-4.8 或更高版本
  • make
  • autoconf
  • pcre (CentOS系统可以执行命令:yum install pcre-devel)

下载地址:

编译安装:

cd /usr/local
wget -c https://github.com/swoole/swoole-src/archive/v2.0.8.tar.gz
tar -zxvf v2.0.8.tar.gz
cd swoole-src-2.0.8/
phpize
./configure
make && make install

修改php.ini文件:

extension=swoole.so

通过php -mphpinfo()来查看是否成功加载了swoole.so,如果没有可能是php.ini的路径不对,可以使用php --ini来定位到php.ini的绝对路径。

二、 swoole 应用

1.打开下载的swoole包,在/swoole/examples/server/echo.php,这个文件创建了一个TCP服务器,监听本机9501 端口

echo.php

<?php
$serv = new swoole_server("0.0.0.0", );
$serv->on('connect', function ($serv, $fd, $reactor_id){
echo "[#".posix_getpid()."]\tClient@[$fd:$reactor_id]: Connect.\n";
});
$serv->set(array(
'worker_num' => , )); $serv->on('receive', function (swoole_server $serv, $fd, $reactor_id, $data) {
echo "[#".$serv->worker_id."]\tClient[$fd] client data: $data\n";
if ($serv->send($fd, "Server {$data}\n") == false)
{
echo "error\n";
} }); $serv->on('close', function ($serv, $fd, $reactor_id) {
echo "[#".posix_getpid()."]\tClient@[$fd:$reactor_id]: Close.\n";
}); $serv->start();

2.启动server,打开终端,运行echo.php

命令

php echo.php

这个时候,其实Server已经启动了,并且正在运行,监听了本机的9501端口,此时Server处于等待的状态,所以没有任何输出。

打开一个新窗口,用telnet连接

telnet 127.0.0.1 

输入hi,结果如下

-------end-----

最新文章

  1. Constraint2:constraint
  2. 利用HTML5的History API实现无刷新跳转页面初探
  3. bootstrap 分页
  4. ORACLE性能优化之SQL语句优化
  5. 【阿里云产品公测】结构化数据服务OTS之JavaSDK初体验
  6. laravel框架——线上环境错误总结
  7. Java里的IO流里的 ObjectInputStream 的读取\写入!
  8. Centos7安装nginx并设置为HTTP代理服务器(正向代理)
  9. JavaScript(第二十七天)【错误处理与调试】
  10. Json转model对象,model转json,解析json字符串
  11. MySql cmd下的学习笔记 —— 有关建立表的操作(有关于数据类型)
  12. cxf 方法添加注解
  13. Docker的一些概念
  14. 20155226 《网络攻防》 Exp1 PC平台逆向破解(5)M
  15. 转 Kubernetes 入门 概念理解
  16. max3232
  17. 一个Flume 异常(Put queue for MemoryTransaction of capacity 100 full)的排查和解决思路
  18. 树莓派Raspberry命令行配置无线网络连接
  19. NBU 还原主/others服务器的SQLSERVER
  20. Ubuntu16.04上安装neo4j数据库

热门文章

  1. Linux环境配置与项目部署
  2. Finalizer 导致的OOM
  3. 灵魂拷问:Java对象的内存分配过程是如何保证线程安全的?(阿里面试)
  4. jquery设置bootstrap-select的默认选中值
  5. 使用Ajax (put delete ) django原生CBV 出现csrf token解决办法
  6. Maven 教程(17)— Maven Profile 和 Filtering 简介
  7. AntDesign vue学习笔记(七)Form 读写与图片上传
  8. 【Python】处理Excel的库Xlwings
  9. Qt3D NodeInstantiator 使用时报出index out of range错误的记录
  10. python selenium IE Firxfor pyinstaller