JAVA отловить timeout при соединении tcp
Получаю данные от устройства по tcp, устройство подключено по wi-fi периодически происходит потеря данных и программа зависает на данном этапе, как я могу отловить простой программы и перезапустить метод? думал о каком-то таймере, но пока не знаю куда его впихнуть если thread то тоже не очень подходит, мне нужно чтоб программа не продолжалась пока я не получу ответ, как быть?
try {
clientSocket = new Socket(ip, port);
in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
out = new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream()));
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
System.out.println("ERROR: " + e1);
}
String word = null;
try {
word = in.readLine();
rs = word.replaceAll("[^0-9?!\\.]", "");
System.out.println("wordrs: " + rs);
success(rs);
} catch (IOException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
System.out.println("ERROR: " + e);
}
System.out.println("word: " + word);
}
});
return rs;