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

Разное

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: интересный скриптик: phpServerApp

Сообщения:  [1-2] 

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

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

   
 
 автор: 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_INET, SOCK_STREAM, 0)) < 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->sock, 5)) < 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, $mess, strlen ($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(); 
?> 



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

   

Сообщения:  [1-2] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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