2012-11-24 6 views
1

JAVA 코드 :TCP 서버 자바 PHP

import java.io.*; 
import java.net.*; 

class Server { 
    public static void main(String args[]) { 
     try { 
     ServerSocket srvr = new ServerSocket(51); 
     Socket skt = srvr.accept(); 
     System.out.print("Server has connected!\n"); 
     PrintWriter out = 
       new PrintWriter(skt.getOutputStream(), true); 
     BufferedReader in = 
       new BufferedReader(new InputStreamReader(skt.getInputStream())); 
     if(in.readLine() == "xFF"){ 
      out.print("OK"); 
     } 
     in.close(); 
     out.close(); 
     skt.close(); 
     srvr.close(); 
     } 
     catch(Exception e) { 
     System.out.print("Whoops! It didn't work!\n"); 
     } 
    } 
} 

PHP 코드 :

<?php 
    $con = fsockopen("127.0.0.1", 51, $errno, $errstr, 10); 
    fwrite($con, "xFF"); 
    if(fread($con, 256) == "OK"){ 
     // Its Works 
    } 
?> 

PHP의 코드 반환 : 치명적인 오류 : C를 초과 60 초 최대 실행 시간 : \ XAMPP \ htdocs에 \ index.php on line 7

답변

1

if(in.readLine() == "xFF") => PHP 스크립트에서 개행 문자를 보내지 않아 영원히 차단됩니다. 따라서 Java 앱에서 아무 것도 보내지 않으며 fread는 전혀 읽지 않습니다. fwrite($con, "xFF\n"); 트릭을해야합니다.

0

"TCP-Server"를 PHP로 구현하려고합니다. 이것은 생각할 수없는 종류입니다.

일반적으로 60 초 후에 PHP 스크립트가 종료됩니다. 하지만이 동작을 .htaccess 파일, php.ini 또는 PHP 함수로 재정의 할 수 있습니다.

htaccess로

<IfModule mod_php5.c> 
php_value max_execution_time 500 
</IfModule> 

php.ini의 max_execution_time와 라인

봐와 가치를 높일 수 있습니다. 내가 PHP에서 서버를 실행하지 않는 것이 좋습니다 그러나

PHP

set_time_limit(0); 

. PHP 스크립트는 일부 데이터를 빠르게 전달하고 종료해야합니다.

0

스크립트는 60 초 최대 실행 시간이

<?php 
    ini_set('max_execution_time', 300); //max execution time set to 300 seconds 
    $con = fsockopen("127.0.0.1", 51, $errno, $errstr, 10); 
    fwrite($con, "xFF"); 
    if(fread($con, 256) == "OK"){ 
     // Its Works 
    } 
?> 
같은 300 초 이상으로 증가 초과