Título: Read timeout Publicado por: Xedrox en 28 Agosto 2014, 19:36 pm Hola gente , como os va?
Les hago una consultonta, resulta ser que tengo un programa "Java" que se conecta como cliente (usando la clase Socket) a otro programa. Para leer un mensaje, uso la clase "DataInputStream", el metodo (int read(bytes[])". Resulta ser que muchas veces me conecto a este programa satisfactoriamente, pero a veces no me contesta y me quedo en un "read" eterno, conoces alguna manera de ponerle un timeout a ese read? Muchas Gracias Saludos! Título: Re: Read timeout Publicado por: 0vatsug en 29 Agosto 2014, 01:03 am El método connect de la clase Socket acepta un timeout como segundo parámetro. Ejemplo:
Código
Capturando las excepciones lanzadas puedes manejar la lógica de tu aplicación para que no se quede congelada y puedas volver a intentar conectarte. Lo que tienes que mirar es por qué razón esas veces no conecta. Bendiciones. Título: Re: Read timeout Publicado por: Chuidiang en 5 Septiembre 2014, 20:45 pm Hola:
El timeout de connect es para la conexión, no afecta a los read. Para el read(), llama a socket.setSoTimeout( timeout en milisegundos) Basta llamar a este método una sola vez, no es necesario hacerlo en cada read. Te saltará una excepción java.net.SocketTimeoutException si salta el timeout en el read. Se bueno. |