socket = $sock; } public function fork() { for ($i=0; $i < $this->workerNumber; $i ) { $pid = pcntl_fork(); if ($pid == -1) { die('could not fork'); } else if ($pid == 0) { // we are the child $this->accept(); exit; } } for ($i=0; $i < $this->workerNumber; $i ) { $status=0; $pid=pcntl_wait($status); //Protect against Zombie children echo "子进程回收了:$pid".PHP_EOL; } } public function accept() { $client_id = 0; while (true) { if (($msgsock = socket_accept($this->socket)) === false) { echo "socket_accept() failed: reason: " . socket_strerror(socket_last_error($this->socket)) . "\n"; } else { $client_id = 1; if (is_callable($this->onConnect)) { call_user_func($this->onConnect, (int)$msgsock); } } if (false === ($buf = @socket_read($msgsock, 2048))) { echo "socket_read() failed: reason: " . socket_strerror(socket_last_error($msgsock)) . "\n"; } else { if (is_callable($this->onMessage)) { call_user_func($this->onMessage, $msgsock, $buf); } } socket_close($msgsock); } } public function run() { $this->fork(); }} $worker = new Worker('tcp://0.0.0.0:9800'); $worker->onConnect = function ($fd) { echo '新的连接来了'.$fd. 'pid' . posix_getpid() . PHP_EOL;};$worker->onMessage = function ($conn, $message) { // echo "读取到数据: {$message}"; $content = "Hello World"; $http_resonse = "HTTP/1.1 200 OK\r\n"; $http_resonse .= "Content-Type: text/html;charset=UTF-8\r\n"; $http_resonse .= "Connection: keep-alive\r\n"; $http_resonse .= "Server: php socket server\r\n"; $http_resonse .= "Content-length: ".strlen($content)."\r\n\r\n"; $http_resonse .= $content; socket_write($conn, $http_resonse, strlen($http_resonse));};$worker->run();
PHP多进程httpserver
用户评论
推荐下载
-
多进程模拟小程序.exe
模拟多线程,教学使用,理解CPU的有效运行机制
11 2020-09-12 -
python实现多进程代码示例
Python中大部分情况下都需要使用多进程,Python中提供了multiprocessing这个包实现多进程。multiprocessing支持子进程、进程间的同步与通信,本文就详细的介绍一下
28 2020-09-21 -
Python Process多进程实现过程
主要介绍了Python Process多进程实现过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
14 2020-09-21 -
Python多进程fork函数详解
今天小编就为大家分享一篇关于Python多进程fork()函数详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
26 2020-09-21 -
Python多进程教学小实例
Python多进程教学小实例
15 2020-09-21 -
python多进程并行代码实例
主要介绍了python多进程并行代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
9 2020-09-21 -
简单学习Python多进程Multiprocessing
主要和大家一起简单的学习Python多进程Multiprocessing,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
20 2020-09-21 -
Python多进程机制实例详解
主要介绍了Python多进程机制,以实例形式详细分析了Python多进程机制的原理与实现技巧,需要的朋友可以参考下
17 2020-09-29 -
python学习笔记之多进程
我们现代的操作系统,都是支持“多任务”的操作系统,对于操作系统来说,一个任务就是一个进程(process)。比如打开一个浏览器就是启动一个浏览器进程。 如果我们将计算器的核心CPU比喻为一座工厂,那么
21 2020-12-17 -
postgresql内核分析多进程结构
postgresql--内核分析--多进程结构,
40 2019-08-17
暂无评论