Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/08/2008, 17:38
la_sandrita
 
Fecha de Ingreso: mayo-2008
Ubicación: Puebla
Mensajes: 13
Antigüedad: 16 años
Puntos: 0
Problema comunicacion sockets entre windows y linux

Hola, espero puedan ayudarme

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:
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);
		}
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.
Espero alguien me pueda decir si es que se debe hacer de otra forma para establecer esta comunicación.