PHP Web Server
注意需安装 PHP pthreads 扩展 方可运行PHP-CLI/1.0PHP “phpWebServer.php” 8080
注意需安装 PHP pthreads 扩展 方可运行
PHP-CLI/1.0
PHP “phpWebServer.php” 8080
PHP-CLI/1.0
PHP “phpWebServer.php” 8080
<?php
class pthread extends thread {
private $socket;
public function __construct($socket) {
$this->socket = $socket;
}
public function run() {
date_default_timezone_set('UTC');
$timeout = 5;
$connfd = socket_accept($this->socket);
if(!$connfd) {
echo socket_strerror();
exit;
}
socket_set_option($connfd, SOL_SOCKET, SO_RCVTIMEO, array('sec' => $timeout, 'usec' => 0));
$buffer = '';
while (( $buffer .= socket_read($connfd, 1024, PHP_BINARY_READ) ) != NULL)
if(strpos($buffer, "\r\n\r\n") !== false) break;
$headers = array();
$headers[] = 'HTTP/1.1 200 OK';
$headers[] = 'Date: '. date('D, d M Y H:i:s'). ' GMT';
$headers[] = 'Server: PHP-CLI/1.0';
$headers[] = 'Content-Type: text/html; charset=utf-8';
$headers[] = 'Connection: close';
$response = array(
'header'=> implode("\r\n", $headers) . "\r\n",
'html'=> '<pre /><div>I\'m a PHP-CLI/1.0</div>');
socket_write($connfd, implode("\r\n", $response));
socket_close($connfd);
socket_close($this->socket);
}
}
error_reporting(0);
set_time_limit(0);
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($socket, '0.0.0.0', $argv[1]);
socket_listen($socket);
$i = 0;
while(1) {
$pthread[$i] = new pthread($socket);
$pthread[$i]->start();
$pthread[$i]->join();
}
- 上一篇:ThinkPHP 使用 callback 自动验证字段唯一
- 下一篇:99乘法表
精彩图集
精彩文章






