DDR爱好者之家 Design By 杰米
本文实例讲述了php实现的简单多进程服务器类。分享给大家供大家参考,具体如下:
php写的一个简单的多进程服务器。
<"/sleep/i",$buf)){ sleep(10); $this->response('休眠10S',$client); socket_close($client); return; } //请求过滤 if(empty($this->checkRule("/GET\s(.*",$buf))){ socket_close($client); return; } //响应 $response= call_user_func($callback,$buf); //回调$callback函数 $this->response($response,$client); usleep(1000); //微妙为单位,1000000 微妙等于1秒 socket_close($client); exit(); //直接退出 } } // while (true) { // $client = socket_accept($this->server); //等待客户端接入,返回的是客户端的连接 // $buf = socket_read($client, 1024); //读取客户端内容 // // //睡眠 // if($this->checkRule("/sleep/i",$buf)){ // sleep(10); // $this->response('休眠10S',$client); // socket_close($client); // return; // } // //请求过滤 // if(empty($this->checkRule("/GET\s(.*",$buf))){ // socket_close($client); // return; // } // // //响应 // $response= call_user_func($callback,$buf); //回调$callback函数 // $this->response($response,$client); // usleep(1000); //微妙为单位,1000000 微妙等于1秒 // socket_close($client); // // } socket_close($this->server); } //io 复用 //epoll 模型 //多进程 protected function createSocket() { $this->server = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); //bind socket_set_option($this->server, SOL_SOCKET, SO_REUSEADDR, 1); //复用还处于 TIME_WAIT socket_bind($this->server, $this->ip, $this->port); //细节性的处理自行完成 socket_listen($this->server); //开始监听 } /** * 协议过滤 * @param $reg * @param $buf * @return mixed */ protected function checkRule($reg,$buf){ if(preg_match($reg,$buf,$matchs)){ return $matchs; } return false; } //请求处理类 public function request($buf){ //1.只允许http协议访问 // if(preg_match("GET\s(.*",$buf,$matchs)){ //匹配到http协议 // return true; // }else{ // return false; // } //2.过滤掉/favicon.ico //3.获取请求信息 } protected function response($content,$client){ //返回数据给客户端,响应处理 $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"; socket_write($client,$string.$content); } }
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP进程与线程操作技巧总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米
暂无评论...
更新日志
2024年11月29日
2024年11月29日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]