Как отключить чтение на Java Socket?

Я пытаюсь читать элементы из сокета, и я замечаю, что если в потоке сокета нет ничего, он останется при чтении и резервном копировании моего приложения. Я хотел знать, есть ли способ установить тайм-аут чтения или прекратить соединение после определенного количества времени в соке.

Ответы

Ответ 2

Если этот сокет был создан с помощью 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();
}

Ответ 3

Да, должно быть переопределение Read(), которое принимает значение тайм-аута. "Override" Я не предлагаю, чтобы кто-нибудь написал один, я указываю, что один из переопределений методов сокетов, которые он использует, принимает значение тайм-аута.