У меня есть клиент, которому я хочу пытаться непрерывно подключаться к серверу до тех пор, пока соединение не будет установлено (т.е. пока я не запускаю сервер).
clientSocket = new Socket();
while (!clientSocket.isConnected()) {
try {
clientSocket.connect(new InetSocketAddress(serverAddress, serverPort));
} catch (IOException e) {
e.printStackTrace();
}
// sleep prevents a billion SocketExceptions from being printed,
// and hopefully stops the server from thinking it's getting DOS'd
try {
Thread.sleep(1500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
После первой попытки я получаю ConnectionException
;ожидается, так как не к чему подключаться.После этого, однако, я начинаю получать SocketException: Socket closed
, что не имеет смысла для меня, поскольку clientSocket.isClosed()
всегда возвращает false, до и после вызова connect()
.
Как мне изменить свой код, чтобы получитьфункциональность мне нужна?