Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: интересный скриптик: phpServerApp
 
 автор: DEM   (14.11.2006 в 23:35)   письмо автору
 
 

Лазил по интернету и нашёл вот такой скрипт:


<? 

// +----------------------------------------------------------------------+  
// PHP version 4.3.0                                                      | 
// +----------------------------------------------------------------------+ 
// | Copyright (c) 2003, youngST                                          | 
// +----------------------------------------------------------------------+ 
// | Simple class allow to create PHP Server application.                 | 
// | phpServerApp version 0.9 beta                                        | 
// +----------------------------------------------------------------------+ 
// | Authors: Alexander Voytsekhovskyy <noc@young.org.ua>                 | 
// +----------------------------------------------------------------------+ 

define ("DEVELOPER""noc@young.org.ua"); 

class 
phpServerApp 

        var 
$host
        var 
$port
        var 
$run
        var 
$delay
        var 
$sock

        function 
phpServerApp($host$port$delay 1000) { 
                
$this->host $host
                
$this->port $port
                
$this->delay  $delay
                
$this->run  true

                if (!
in_array("pcntl"get_loaded_extensions())) { 
                        echo 
"--enable--pnctl REQUIRED \n"
                } 
                if (!
in_array("sockets"get_loaded_extensions())) { 
                        echo 
"--enable--sockets REQUIRED \n"
                } 
                
error_reporting (E_ALL);  
                
set_error_handler(array($this"errorReporter")); 
                @
set_time_limit (0);  

                
$pid = @pcntl_fork(); 
                if (
$pid == -1) { 
                        
trigger_error ("could not fork child process"E_USER_ERROR); 
                } else if (
$pid) { 
                        exit(
0); 
                } 
                if (!
posix_setsid()) { 
                        
trigger_error ("could not detach from terminal"E_USER_ERROR); 
                } 
                
pcntl_signal(SIGTERM, array($this"sigHandler")); 
                
pcntl_signal(SIGHUP,  array($this"sigHandler")); 
                
pcntl_signal(SIGUSR1, array($this"sigHandler"));  

                if ((
$this->sock = @socket_create (AF_INETSOCK_STREAM0)) < 0) {  
                        echo 
"socket_create() failed: reason: " socket_strerror ($this->sock) . "\n"; exit(1); 
                } 
                if ((
$ret = @socket_bind ($this->sock$this->host$this->port)) < 0) {  
                        echo 
"socket_bind() failed: reason: " socket_strerror ($ret) . "\n"; exit(1); 
                } 
                if ((
$ret = @socket_listen ($this->sock5)) < 0) {  
                        echo 
"socket_listen() failed: reason: " socket_strerror ($ret) . "\n"; exit(1); 
                } 
        } 

        function 
run() { 
                while (
$this->run) { 
                        if ((
$msgsock socket_accept($this->sock))) {  
                                
$this->socketAction($msgsock); 
                                
socket_close ($msgsock); 
                        } 
                } 
                
usleep($this->delay); 
                echo 
"Server shutdown \n"
        } 

        function 
socketAction($msgsock) { 
                
$mess "Socket here \n"
                
socket_write ($msgsock$messstrlen ($mess)); 
        } 

        function 
sigHandler ($signo) { 
                switch(
$signo) { 
                        case 
SIGTERM
                                
$this->run 0
                        break; 
                default: 
                                echo 
"Catch signal ".$signo."\n"
                        break; 
                } 
        } 

        function 
errorReporter ($errno$errstr$errfile$errline) {  
                switch (
$errno) {  
                        case 
FATAL
                                
$message 
                                        FATAL ['
.$errno.'] '.$errstr.' in line '.$errline.' of file '.$errfile.
                                        PHP '
.PHP_VERSION.' ('.PHP_OS.') 
                                '

                                exit(
1); 
                        break; 
                        default: 
                                
$message 'Unkown error type: ['.$errno.'] '.$errstr
                        break; 
                } 
        } 



// Sapmle 
$a = new phpServerApp("localhost""1122"); 
$a->run(); 
?> 



Вот только пока не разбирался, но говорят норм

   
 
 автор: Yakor   (16.11.2006 в 21:06)   письмо автору
 
   для: DEM   (14.11.2006 в 23:35)
 

дык а для чего он? :)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования