我需要构建一个应用程序,其中我运行四个服务器,一个客户端将一些软件包发送到这些服务器,但这些服务器必须始终保持运行,从客户端(发送方)接收内容。 所以我创建了两个类,客户端和服务器:
public class Server {
public Event receive(int port) {
Evento event = null;
try {
ServerSocket ss = new ServerSocket(port);
Socket s = ss.accept();
InputStream is = s.getInputStream();
ObjectInputStream ois = new ObjectInputStream(is);
evento = (Evento) ois.readObject();
is.close();
s.close();
ss.close();
}catch(Exception e){
System.out.println(e);
}
return event;
}
}
public class Client {
public void send(Event event, int port) {
try {
Socket s = new Socket("localhost", 2002);
OutputStream os = s.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(os);
oos.writeObject(event);
oos.close();
os.close();
s.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
但正如我所说,我需要这些服务器一直运行,如果我测试一次,那没关系,但两次或更多,不要。 我怎么能这样做?
答案 0 :(得分:2)
标准模式是为每个连接创建一个线程。如果您使用一个线程,则只能从一个阻塞连接中读取。
答案 1 :(得分:0)
只需在readObject周围添加do while块。 作为休息条件,您可以检查消息是否类似于“退出”..
欢呼声