sockettimeoutexception socket setsotimeout read net java sockets timeout inputstream

java - setsotimeout - socket timeout python



¿Cómo agotar el tiempo de espera una lectura en Java Socket? (3)

Estoy tratando de leer elementos de un socket y me doy cuenta de que si no hay nada en el flujo del socket, permanecerá en la lectura y la copia de seguridad de mi aplicación. Quería saber si había una manera de establecer un tiempo de espera de lectura o terminar la conexión después de un cierto tiempo de nada en el socket.


Sí, debería haber una anulación de Lectura () que acepta un valor de tiempo de espera. Al "anular" No estoy sugiriendo que nadie escriba uno, estoy señalando que uno de los anulaciones de los métodos de socket que está usando tiene un valor de tiempo de espera.



Si este socket se creó a través de un URLConnection para realizar una solicitud web, puede establecer los tiempos de espera de lectura y conexión directamente en el URLConnection antes de leer la transmisión:

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(); }