我使用Socket连接到服务器。我有不同的超时取决于我正在执行的选项。我希望能够在通知客户端连接无法打开之前重试"connect"方法至少3次。
我试过在try/catch中包装"connect"方法,并在异常捕获为"SocketTimeoutException"时召回"connect",但这不起作用。我知道答案可能包括把整个过程放在for/while循环中,但我似乎不知道怎么做。
帮忙吗?
像这样,也许:
private void doSomething() {
Socket socket = null;
for (int i = 0; i < 3; i++) {
try {
socket = connectToServer();
break;
} catch (IOException e) {
// Log exception,
// show message to user,
// etc.
}
}
if (socket != null) {
// Ok
} else {
// Could not connect to server.
}
}
private Socket connectToServer() throws IOException {
// Always returns a valid socket.
// Throws exception in case of problems.
}