【问题标题】:TCP Server Java with PHPTCP 服务器 Java 与 PHP
【发布时间】:2012-11-12 12:56:52
【问题描述】:

JAVA 代码:

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:\xampp\htdocs\index.php 第 7 行中的最大执行时间超过 60 秒

【问题讨论】:

    标签: java php tcp


    【解决方案1】:

    如果我猜对了,您正在尝试使用 PHP 实现“TCP-Server”。这不可能是你认为的这种:

    通常,PHP 脚本将在 60 秒后终止。但是你可以覆盖这个行为是一个 .htaccess 文件,php.ini 或一个 php 函数。

    .htaccess

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

    php.ini

    查找带有max_execution_time 的行并增加值。

    PHP

    set_time_limit(0);
    

    但是我建议不要在 PHP 中实现服务器。 PHP 脚本应该只是快速传递一些数据并退出。

    【讨论】:

      【解决方案2】:

      if(in.readLine() == "xFF") => 这将永远阻塞,因为您没有在 PHP 脚本中发送换行符。因此,您永远不会从您的 Java 应用程序中发送任何内容,并且 fread 将永远不会读取任何内容。 fwrite($con, "xFF\n"); 应该可以解决问题。

      【讨论】:

        【解决方案3】:

        您的脚本超过最大执行时间为 60 秒,像这样将其增加到 300 秒或更长时间

        <?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
            }
        ?>
        

        【讨论】:

          猜你喜欢
          • 2012-07-14
          • 2010-11-29
          • 2011-03-18
          • 2015-09-29
          • 1970-01-01
          • 1970-01-01
          • 2012-11-03
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多