我制作了一个控制器应用程序,它将一个字符串发送到服务器,服务器将按下相应的按钮。但是我想做一个备份服务器,所以如果主电源关闭,客户端将自动连接到另一台服务器。 这是来自客户端的和平代码:
try{
s= new Socket("ip",7800);
pw= new PrintWriter(s.getOutputStream());
pw.write(message);
pw.flush();
pw.close();
s.close();
}catch (IOException e){
e.printStackTrace();
}
//sending the string
MessageSender messageSender = new MessageSender();
messageSender.execute("S");
备份服务器是相同的,但是在另一个端口中,如果与主要端口的连接丢失,我该如何连接呢?谢谢您的回答。
答案 0 :(得分:0)
通常会抛出ConnectionException,远程拒绝连接(例如,没有进程正在侦听远程地址/端口)
当此事件发生并在备份服务器上回退时,您可以捕获ConnectionException或它的基类SocketException甚至它的基IOException。
try{
s= new Socket("ip",7800);
pw= new PrintWriter(s.getOutputStream());
pw.write(message);
pw.flush();
pw.close();
s.close();
}catch (IOException e){
e.printStackTrace();
//fall back code
s= new Socket("ip",7800);
....
}
注意:您可以重构以上代码,也可以在try块中重新使用代码