Я пытаюсь и не удается создать мост между PHP
а также Java
, С моим методом, это работает, чтобы отправить одну строку, но сервер закрывается после чтения данных.
Это мой класс в 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);
?>
Заранее большое спасибо, надеюсь вы мне поможете 🙂
Вы должны зациклить server.accept () в своем коде Java.
В вашем Java-коде вы принимаете клиентское соединение один раз, читаете входящие данные и все, ваше приложение заканчивается.
Вы можете принимать новые соединения в цикле и обрабатывать данные в выделенных потоках.
Также рассмотрите возможность использования try с ресурсами для ваших потоков.
Других решений пока нет …