我試圖在兩個JVM之間發送消息:服務器啓動第二個進程。第二個過程是發送消息到服務器,該消息將消息輸出到控制檯。代碼如下:通過Java中的標準輸入/輸出進行通信
public class Server
{
public static void main(String[] args)
{
Process client=null;
BufferedReader clientInput=null;
try
{
client=Runtime.getRuntime().exec("java Client");
clientInput=new BufferedReader(new InputStreamReader(client.getInputStream()));
}
catch(IOException e){}
System.out.println("Waiting for the client to connect...");
try
{
String msg=clientInput.readLine();
System.out.println(msg);
}
catch(IOException e){}
client.destroy();
}
}
和
public class Client
{
public static void main(String[] args)
{
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));
try
{
out.write("Ready\n");
out.flush();
}
catch (Exception e){}
}
}
如果我跑,我得到從服務器,沒有輸出。最後,溝通應該是雙向的。任何幫助不勝感激。
編輯:我沒有得到任何錯誤(只是刪除從catch塊的打印語句以節省空間)。
的問題是,所有我收到的是空 - 「就緒」從未收到雖然。 – coderino 2012-02-15 16:54:04
我在我的代碼中有e.printStackTrace()。正如我上面所說,我只是把它刪除,以免混亂太多空間。正如我所說,沒有例外。 – coderino 2012-02-16 10:07:48