2017-04-21 4 views
1

Je tente de créer un pont entre PHP et Java. Avec ma méthode, cela fonctionne pour envoyer une chaîne, mais le serveur se ferme après avoir lu les données.Java ServersSocket fermer après avoir lu

Ceci est mon classe en 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(); 
    } 
    } 
} 

Et voilà comment j'envoyer la chaîne de PHP:

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

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

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

Un grand merci à l'avance, je l'espère, vous pouvez me aider :)

Répondre

0

Vous devez boucler server.accept() dans votre code java.

Dans votre code Java, vous acceptez une fois la connexion client, lisez les données entrantes et c'est tout, votre application se termine.

Vous pouvez accepter de nouvelles connexions dans une boucle et traiter des données dans des unités d'exécution dédiées. Pensez également à essayer d'utiliser des ressources pour vos flux.