2016-07-08 26 views
1

Ich habe einen funktionierenden Java-Socket, aber ich brauche etwas Hilfe, um es mit PHP zu verbinden.PHP-Socket Verbindung verweigert (Java-Server)

Mein Problem: Ich kann von einem Java-Client eine Verbindung zum Java-Socket herstellen und Nachrichten senden/empfangen, aber wenn ich versuche, eine Verbindung zu demselben Socket mit PHP herzustellen, wird keine Verbindung hergestellt.

Dies ist, was ich für die Steckdose in der while-Schleife habe: (hält diesen Teil arbeitet im Auge)

Socket socket = serverSocket.accept(); 
System.out.println("Got connection"); 
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); 
PrintWriter out = new PrintWriter(socket.getOutputStream(), true); 
String cmd = in.readLine(); 
System.out.println("Received: " + cmd); 
String response = "It worked. Received: " + cmd; 
out.println(response); 
... 

Und die andere Hälfte zu zeigen, dass dies der Client funktioniert:

Socket socket = new Socket("<ip>", port); 
PrintWriter out = new PrintWriter(socket.getOutputStream(), true); 
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); 
out.println("test msg"); 
out.flush(); 
System.out.println("Sent message"); 
String r = in.readLine(); 
System.out.println("Response: " + r); 

Jetzt für den Teil, der nicht funktioniert.
Dies ist, was ich tue, mit PHP zu versuchen und verbinden:

$s = fsockopen('<ip>', $port, $errno, $errstr, 25); 
if (!$s) { 
    echo 'Error: '.$errstr; 
    die; 
} 

Lauf dass Ausgänge:

: „Error Connection refused“

Wer weiß, wie ich diagnostizieren, warum die PHP keine Verbindung herstellen können aber der Java-Client kann? Sie greifen beide extern auf den Socket zu, und da der Java-Client eine Verbindung herstellen kann, ist sie nicht blockiert. Gibt es ein Protokoll, das ich vergessen habe?

Ich habe Dutzende andere Leute mit der gleichen Frage angeschaut, aber niemand hat eine Antwort gegeben.

Antwort

0

Haben Sie in der php.ini nachgesehen, wenn fsockopen erlaubt ist?

1, php.ini, sucht Linie: disable_functions = fsockopen 2, php.ini, siehe allow_url_fopen = On oder allow_url_fopen = Off

+0

Ich habe keinen Zugriff auf die php.ini, aber ich war in der Lage um 'phpinfo (4) 'auszuführen, um alle Optionen zu sehen. allow_url_fopen ist "On" und disable_functions hat keinen Wert. –