J'essaie de lire des éléments d'un socket et je remarque que s'il n'y a rien dans le flux du socket, il restera à la lecture et sauvegardera mon application. Je voulais savoir s'il existait un moyen de définir un délai de lecture ou de mettre fin à la connexion après un certain laps de temps sans rien dans la prise.
Si vous écrivez en Java, apprendre à naviguer dans la documentation de l'API est utile. Dans le cas d'une lecture de socket, vous pouvez définir l'option de délai d'attente.
Si cette socket a été créée via une URLConnection
pour exécuter une requête Web, vous pouvez définir les délais de lecture et de connexion directement sur la URLConnection
avant de lire le flux:
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();
}