Estoy haciendo un programa en java para enviar información de una pc con Ubuntu server 7 a un conmutador que trabaja con windows xp sin éxito alguno.
Solo estoy haciendo el programa cliente pues el conmutador ya tiene su proceso servidor corriendo.
Mi programa es muy sencillo
esta es la parte principal:
Código:
De hecho mi programa solo necesita enviar y recibir cadenas, de hecho lo he probado en máquinas con windows xp y windows vista y funciona perfectamente, sin embargo al momento de pasarlo a un equipo con linux (lo hecho en una pc con redflag 5 y en el ubuntu que es en donde debe estar) el programa me lanza el SocketTimeOut exception que configuré, sin embargo depurando el programa veo que el timeout es lanazado al momento de intentar leer la primera respuesta (es decir de hacer el primer readLine), como si lo primero que envié (la contraseña) nunca hubiera sido recibida, sin embargo con un sniffer veo claramente que la cadena es enviada, no logro saber por que la comunicación varía entre linux y windows.try { Socket socket = new Socket(ip,Integer.valueOf(port)); //ip y port son strings declaradas previamente socket.setSoTimeout(30000); BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream())); PrintWriter output = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()),true); output.println("PASS "+password); //Envio contraseña System.out.println(input.readLine()); //leo respuesta output.println("GetGWConfig"); //envio petición gateway config System.out.println(input.readLine()); //leo respuesta } catch (IOException anException) { System.out.println(anException); }
Espero alguien me pueda decir si es que se debe hacer de otra forma para establecer esta comunicación.