我在课堂上正在设计一个小游戏时遇到问题。 问题是我有两个客户端连接到服务器。 (client1和client2)他们每个人都在运行一个游戏,最后关闭窗口。由于游戏窗口是一个JDialog,它将在关闭时通过套接字发送一条消息到服务器,告诉它已完成。我希望服务器知道哪两个客户端先完成。他们通过套接字的OutputStream上的PrintWriter进行报告。 我所做的就是这样的:在多个套接字(InputStreamReader)上进行监听
in1 = new BufferedReader(new InputStreamReader(client.getInputStream()));
in2 = new BufferedReader(new InputStreamReader(client2.getInputStream()));
try {
in1.readLine();
} catch (IOException ex) {
Logger.getLogger(gameServer.class.getName()).log(Level.SEVERE, null, ex);
}
try {
in2.readLine();
} catch (IOException ex) {
Logger.getLogger(gameServer.class.getName()).log(Level.SEVERE, null, ex);
}
问题是,它等待第一个输入,它甚至开始监听前一秒。我怎样才能让它同时收听?或者用其他方式解决我的问题。 谢谢!
如果你想同时做多件事情,而不是有一个等待对方,这是使用线程的理想时机。 –