2017-04-21 70 views
1

我尝试并未能在PHPJava之间创建一个桥接。使用我的方法,它可以发送一个字符串,但服务器在读取数据后关闭。Java ServersSocket在读取后关闭

这是我在Java类:

public class Server { 

private static BufferedReader inputstream; 
private static BufferedWriter outputstream; 
private static ServerSocket server; 

public static void main(String[] args){ 
    System.out.println("Server gestartet"); 
    createServer(); 
} 

private static void createServer() { 
    try { 
     server = new ServerSocket(6666); 
     Socket client = server.accept(); 
     inputstream = new BufferedReader(new InputStreamReader(client.getInputStream())); 
     outputstream = new BufferedWriter(new OutputStreamWriter(client.getOutputStream())); 

     String temp = null; 

     while((temp = inputstream.readLine()) != null){ 
      System.out.println(temp); 
     } 

    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    try { 
     inputstream.close(); 
     outputstream.close(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    } 
} 

这就是我如何从PHP发送字符串:

<?php 
$socket = fsockopen('localhost', 6666, $errno, $errstr, 30); 

if(!$socket){ 
    echo("$errno <br> $errstr"); 
    } 

fwrite($socket, "Hello its me\n"); 
fclose($socket); 
?> 

事先非常感谢,我希望你能帮助我:)

回答

0

你必须在你的java代码中循环server.accept()。

在您的java代码中,您接受客户端连接一次,读取传入数据,这就是所有,您的应用程序结束。

您可以接受循环中的新连接,并在专用线程中处理数据。 另请考虑使用您的流的资源尝试。