php使用event扩展的io复用测试的示例
发布:smiling 来源: PHP粉丝网 添加日期:2022-03-28 18:37:36 浏览: 评论:0
这篇文章主要介绍了php使用event扩展的io复用测试的示例,帮助大家更好的理解和使用php,感兴趣的朋友可以了解下。
先要安装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()); //调度挂起事件监听
Tags: event io复用测试
- 上一篇:PHP实现限制域名访问的实现代码(本地验证)
- 下一篇:最后一页
相关文章
- ·PHP中Libevent HTTP客户端实现程序(2015-04-15)
- ·php socket服务的模型以及实现 多进程IO复用libevent(2018-09-18)
- ·深入解析PHP的Yii框架中的event事件机制(2019-11-17)
- ·php libevent 功能与使用方法详解(2022-02-18)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)