Ответ 1
Если вы пишете Java, полезно научиться навигации по документации API. В случае чтения сокета вы можете установить параметр таймаута.
Я пытаюсь читать элементы из сокета, и я замечаю, что если в потоке сокета нет ничего, он останется при чтении и резервном копировании моего приложения. Я хотел знать, есть ли способ установить тайм-аут чтения или прекратить соединение после определенного количества времени в соке.
Если вы пишете Java, полезно научиться навигации по документации API. В случае чтения сокета вы можете установить параметр таймаута.
Если этот сокет был создан с помощью URLConnection
для выполнения веб-запроса, вы можете установить тайм-ауты чтения и подключения непосредственно на URLConnection
перед чтением потока:
InputStream createInputStreamForUriString(String uriString) throws IOException, URISyntaxException {
URLConnection in = new URL(uriString).openConnection();
in.setConnectTimeout(5000);
in.setReadTimeout(5000);
in.setAllowUserInteraction(false);
in.setDoInput(true);
in.setDoOutput(false);
return in.getInputStream();
}
Да, должно быть переопределение Read(), которое принимает значение тайм-аута. "Override" Я не предлагаю, чтобы кто-нибудь написал один, я указываю, что один из переопределений методов сокетов, которые он использует, принимает значение тайм-аута.