php使用event扩展的io复用测试的示例


Posted in PHP onOctober 20, 2020

先要安装event扩展,这样才可以使用libevent的事件机制

pecl install event

测试代码

//连接重用
//创建资源流的上下文
$context=stream_context_create([
  'socket'=>[
    'backlog'=>2000
  ]]);
stream_context_set_option($context,'socket','so_reuseaddr',1); //设置连接重用
//sock_set_option($this->server, SOL_SOCKET, SO_REUSEADDR, 1); //复用还处于 TIME_WAIT
$socket = stream_socket_server("tcp://0.0.0.0:8070", $errno, $errstr,STREAM_SERVER_BIND | STREAM_SERVER_LISTEN,$context);
stream_set_blocking($socket,false);//非阻塞
//绑定事件
$base=new EventBase();
//监听服务端的socket
$event=new Event($base,$socket,Event::PERSIST |Event::READ | Event::WRITE,function ($socket)use(&$base){

  $client = stream_socket_accept($socket);
  //stream_set_blocking($client,false);//非阻塞
//    var_dump($client);
//    $content='21335435';
//    $string="HTTP/1.1 200 OK\r\n";
//    $string.="Content-Type: text/html;charset=utf-8\r\n";
//    $string.="Content-Length: ".strlen($content)."\r\n\r\n";
//    fwrite($client,$string.$content);
//    fclose($client);

  //global $base;

  //var_dump($socket,$client);

  $base=new EventBase();
  //监听客户端socket
  $event=new Event($base,$client,Event::PERSIST |Event::READ | Event::WRITE,function ($client){
    $msg=fread($client,65535);
//
//     if($msg){ //匹配请求头包含了keep-alive
//
//     }

    $content='hello world';
    $string="HTTP/1.1 200 OK\r\n";
    $string.="Content-Type: text/html;charset=utf-8\r\n";
    $string.="Connection: keep-alive\r\n";
    $string.="Content-Length: ".strlen($content)."\r\n\r\n";
    fwrite($client,$string.$content);

    fclose($client);

 
    //当socket断开连接,删除事件

    $event->del();//删除事件


  });
  $event->add(); //加入事件监听
  $base->loop();

  //监视客户端
  //$event->del();//删除事件
});
$event->add(); //加入事件监听
var_dump($base->loop()); //调度挂起事件监听

php使用event扩展的io复用测试的示例

php使用event扩展的io复用测试的示例

以上就是php使用event扩展的io复用测试的示例的详细内容,更多关于php io复用测试的资料请关注三水点靠木其它相关文章!

PHP 相关文章推荐
php一句话cmdshell新型 (非一句话木马)
Apr 18 PHP
php 数组二分法查找函数代码
Feb 16 PHP
Ext.data.PagingMemoryProxy分页一次性读取数据的实现代码
Apr 07 PHP
php提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
May 06 PHP
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
Jun 24 PHP
PHP使用内置函数file_put_contents写入文件及追加内容的方法
Dec 07 PHP
PHP+jQuery实现滚屏无刷新动态加载数据功能详解
May 04 PHP
PHP编程实现的TCP服务端和客户端功能示例
Apr 13 PHP
Yii2.0框架实现带分页的多条件搜索功能示例
Feb 20 PHP
php swoole多进程/多线程用法示例【基于php7nts版】
Aug 12 PHP
PHP copy函数使用案例代码解析
Sep 01 PHP
aec加密 php_php aes加密解密类(兼容php5、php7)
Mar 14 PHP
Aliyun Linux 编译安装 php7.3 tengine2.3.2 mysql8.0 redis5的过程详解
Oct 20 #PHP
phpcmsv9.0任意文件上传漏洞解析
Oct 20 #PHP
php实现记事本案例
Oct 20 #PHP
Laravel统一错误处理为JSON的方法介绍
Oct 18 #PHP
Yii中特殊行为ActionFilter的使用方法示例
Oct 18 #PHP
PHP 99乘法表的几种实现代码
Oct 13 #PHP
php7连接MySQL实现简易查询程序的方法
Oct 13 #PHP
You might like
smtp邮件发送一例
2006/10/09 PHP
php去除换行符的方法小结(PHP_EOL变量的使用)
2013/02/16 PHP
CentOS下PHP安装Oracle扩展
2015/02/15 PHP
php通过各种函数判断0和空
2020/07/04 PHP
javascript面向对象特性代码实例
2014/06/12 Javascript
jQuery创建DOM元素实例解析
2015/01/19 Javascript
jquery通过load获取文件的内容并跳到锚点的方法
2015/01/29 Javascript
Javascript中prototype属性实现给内置对象添加新的方法
2015/05/14 Javascript
js+css3制作时钟特效
2016/10/16 Javascript
浅谈Angularjs link和compile的使用区别
2016/10/21 Javascript
浅析JavaScript中作用域和作用域链
2016/12/06 Javascript
COM组件中调用JavaScript函数详解及实例
2017/02/23 Javascript
javascript编写简易计算器
2017/05/06 Javascript
基于Vue过渡状态实例讲解
2017/09/14 Javascript
angular的输入和输出的使用方法
2018/09/22 Javascript
解决Vue的文本编辑器 vue-quill-editor 小图标样式排布错乱问题
2020/08/03 Javascript
addEventListener()和removeEventListener()追加事件和删除追加事件
2020/12/04 Javascript
[45:17]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第三场 1月9日
2021/03/11 DOTA
Python数据操作方法封装类实例
2017/06/23 Python
Python分析学校四六级过关情况
2017/11/22 Python
python自制包并用pip免提交到pypi仅安装到本机【推荐】
2019/06/03 Python
pybind11和numpy进行交互的方法
2019/07/04 Python
MoviePy简介及Python视频剪辑自动化
2020/12/18 Python
详解python中的异常和文件读写
2021/01/03 Python
h5调用摄像头的实现方法
2016/06/01 HTML / CSS
HTML5 Blob对象的具体使用
2020/05/22 HTML / CSS
TripAdvisor印尼站:全球领先的旅游网站
2018/03/15 全球购物
商务日语专业毕业生自荐信
2014/03/27 职场文书
三月雷锋月活动总结
2014/07/03 职场文书
客户答谢会活动方案
2014/08/31 职场文书
乡党委干部党的群众路线教育实践活动个人对照检查材料思想汇报
2014/10/01 职场文书
大学生实习介绍信
2015/05/05 职场文书
开场白怎么写
2015/06/01 职场文书
让子弹飞观后感
2015/06/11 职场文书
2019企业文化管理制度范本!
2019/08/06 职场文书
ztree+ajax实现文件树下载功能
2021/05/18 Javascript