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 escribe Java, aprender a navegar por la documentación de la API es útil. En el caso de una lectura de socket, puede configurar la opción 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();
}