Можно ли в любом случае установить тайм-аут для клиентского сокета, если клиент не получает / не отправляет никакого сообщения в определенное время?
вот фрагмент моего кода:
try {
mainSocket = new ServerSocket(portNumber);
clientSocket = mainSocket.accept();
in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
out = new PrintWriter(clientSocket.getOutputStream(), true);
} catch (IOException ex) {
Logger.error(this, "failed to accept connection. Error was " + ex.getMessage());
}
while (reading) {
try {
char[] arr = new char[2048];
ch = 0;
ch = in.read(arr);
if (ch < 0) {
reading = false;
}
else {
//process message
} catch (IOException ex) {
Logger.error(this, ex);
}
}
Теперь я хочу сделать следующее: если через x секунду clientSocket не получил никакого сообщения, он выйдет из цикла, закроет соединение и перезапустит принимающее соединение.
Я знаю, как закрыть соединениеи возобновить прием соединения, но я все еще не могу понять, остальные.Есть ли способ сделать это?
Спасибо за помощь