HJ's WebServer 0.3 ¶
- 로 는 물론고, 미 , 멀미디 , 다로드 모두 가능
- PHP 립를 (는 : html, htm, php)
- 디렉리명로 근 경 index.html, index.htm, index.php 로 가
- 다 보 문 대 결 방법 련놓 , 된 디렉리 는 만 보록
To Do.. ¶
- GET Method로 Query String를 리다.
- POST Method, COOKIE 로 데까 리 면 더 다.
드 ¶
~php <? $index_file = array("index.html", "index.htm", "index.php"); $host = "IP 또는 메 "; $port = 8080; set_time_limit(0); if(!function_exists("mime_content_type")) { function mime_content_type($f) { return exec(trim("file -bi ".escapeshellarg($f))); } } //echo str_repeat(" ",300); $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_bind($socket, $host, $port); socket_setopt($socket, SOL_SOCKET, SO_REUSEADDR, 1); socket_listen($socket); $i = 100; while($i--) { $client_socket = socket_accept($socket); $result = ""; while(false!==($read = socket_read($client_socket, 100, PHP_NORMAL_READ))) { echo "> ".$read; if(!$read = trim($read)) $cnt++; else $cnt=0; if($cnt==3) break; flush(); if(preg_match("/(GET|POST) (\/[^ \/]*) (HTTP\/[0-9]+.[0-9]+)/i", $read, $t)) { $file = "/home/kesarr".$t[2]; if(preg_match("/\/$/", $file)) { foreach($index_file as $idxf) { if(is_readable($file.$idxf)) { $file .= $idxf; break; } } } if(is_readable($file)) { $size = @getimagesize($file); if($size['mime']) $mime = $size['mime']; else $mime = mime_content_type($file); $res[] = "HTTP/1.1 200 OK"; $res[] = "Server: Kesarr's WebServer"; $res[] = "Connection: close"; $to_read = $file; } else { $res[] = "HTTP/1.1 404 Not Found"; $res[] = "Server: Kesarr's WebServer"; $res[] = "Content-Length: ".strlen(" 다."); $res[] = "Connection: close"; $res[] = "Content-Type: $size[mime];charset=UTF-8;"; $res[] = ""; $res[] = " 다."; } } if($read == "close") { break; } elseif($read == "a") { $result = $read; } elseif($read == "exit") { socket_close($client_socket); socket_close($socket); exit; } } if($res) { if($to_read) { if(preg_match("/\.(html|htm|php)$/", $to_read)) { $buffer = shell_exec(trim("php ".escapeshellarg($to_read))); $res[] = "Content-Length: ".strlen($buffer); $res[] = ""; $result = join("\r\n", $res); @socket_write($client_socket, $result); echo $result; @socket_send($client_socket, $buffer, strlen($buffer), 0); $buf = explode("\r\n\r\n", $buffer); echo $buf[0]."\r\n\r\nPHP Parse: "; } else { $res[] = "Content-Length: ".filesize($file); $res[] = "Content-Type: ".$mime; $res[] = ""; $res[] = ""; $result = join("\r\n", $res); @socket_write($client_socket, $result); echo $result; @socket_send($client_socket, $buffer, strlen($buffer), 0); if(preg_match("/^text\//", $mime)) { $fp = fopen($to_read, "r"); echo "ASCII Read: "; } else { $fp = fopen($to_read, "rb"); echo "Binary-safe Read: "; } while(!feof($fp)){ $buffer=fread($fp,128); @socket_send($client_socket, $buffer, strlen($buffer), 0); } fclose($fp); } echo $to_read; } else { $result = join("\r\n", $res); socket_write($client_socket, $result); echo $result; } echo "\r\n__EOF__\r\n\r\n"; flush(); } socket_close($client_socket); unset($res); unset($to_read); unset($result); } socket_close($socket); ?>
다 만들. ㅋㅋ 다. 가 부 공로 먹고 라면 메 를 C나 Java로 바꾸는 게 것 같다. - eternalbleu
- PHP로 면 립 로그래밍 겁다고나 까? 그런 느낌 PHP를 긴 만, UI를 루만 런 께면 대부 로 같 루 만들 라고 각. 그래 느는 까 C++, Java, C# 고민다 C# 봤는데, C# 라단 리 가려면 Windows Vista가 된 봐 것 같고, C/C++ 더 대 명보. 같 경는 구고 관가 '대량 데베 기반 검 '과 ' 기반 리'로 DB 문 리 관 부데, DB 리는 단 RDBMS만 PHP럼 가 고, 문 리는 Perl 다른 들 다보 그런 를 메 로 나 . ㅋㅋ - 변
- 내가 PHP 보고, JSP 나 Java 봤 대 듯.. 나 JSP랑 Java DB 로 개발 보기는 는 PHP로 는게 가 게 느껴든. 그래 DB 로 PHP Java 렇게 나려고 는데 PHP가 Oracle 5.x 부 되 Jsp로 게 됐. 둘다 본 감 면는 뭐 PHP로 나 Jsp로 나 관 는 같고, 다만 결 것 개발경및 Jsp 는 java 래를 가다가 다는 . Jsp 면 Junit Unit 를 면 기 고, 또 디깅 경 Visual Studio 디깅 듯 다는게 말 . 또 java 래를 가다가 러 를 기 고.(를 들면 Lucene 같 바로 만든 검 ..). Eclipse 라는 강력 개발 경 Visual Studio 보다 더 개발 ..
- 내가 무리 렇게 말 귀 들 라고 각 고.. 다만 경 보길 바래. 내가 되는것 를 Jsp,Java 로 고 PHP로 것 만.. 그리고 공 것 나를 는 것 긴 데, 나는 떠 것 방 고 배 먹 는 능력 다고 각. 그리고 검 관 다면 검 Lucene 갖고 놀봐. 그리고 로 단 것 보고 면 MemeHarvester 로 되고. - namsang
- 내가 무리 렇게 말 귀 들 라고 각 고.. 다만 경 보길 바래. 내가 되는것 를 Jsp,Java 로 고 PHP로 것 만.. 그리고 공 것 나를 는 것 긴 데, 나는 떠 것 방 고 배 먹 는 능력 다고 각. 그리고 검 관 다면 검 Lucene 갖고 놀봐. 그리고 로 단 것 보고 면 MemeHarvester 로 되고. - namsang