次のシナリオでは、PHP スクリプトが Java アプリケーション内からプロセスとして実行されているコンソール アプリケーションを扱っています。スクリプトに 2 つの値が入力されるたびに、"OK" または "ERR" のいずれかが返されます。入力がスクリプトに入力されてからの所要時間と、「OK」または「ERR」値で返される時間をキャプチャしようとしています。
次の修正を実装しましたが、まだ機能していないようです。誰かが光を当てることができれば。
try {
proc = runtime.exec("php " + "script.php");
inp = new BufferedReader( new InputStreamReader(proc.getInputStream()) );
out = new BufferedWriter( new OutputStreamWriter(proc.getOutputStream()) );
while (true) {
temp = getRandomUser() + " " + getRandomHost();
startTime = System.currentTimeMillis();
//System.out.println(temp);
print(pipe(temp));
while (!inp.readLine().equals("ERR") || !inp.readLine().equals("OK")) {
}
endTime = System.currentTimeMillis();
procTime = (long) endTime - startTime;
fout.write(Double.toString(procTime));
fout.newLine();
//System.out.println("! " + procTime);
}
} catch (IOException ex) {
System.out.println("Thread prematurely Terminated...");
}