Java - Problemas con readObject (sockets)

 
Vista:

Problemas con readObject (sockets)

Publicado por hitzu (1 intervención) el 05/10/2015 06:13:58
Buen dia tengo una clase avion a la que inicializo desde un socket cliente y a la hora de pasarla al socket servidor me muestra como si hubiera creado otra clase avion, y no la que estoy mandando ¿Alguna idea del como solucionarlo?

Gracias por su ayuda


Aqui dejo mi codigo desarrollado

Clase Avion serializable
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class Avion implements java.io.Serializable {
	static int num ;
	static String des;
	static int numeroPasajeros ;
 
	public Avion()
	{}
 
	public Avion(int numero, String destino, int pasajeros)
	{
		num = numero;
		des = destino;
		numeroPasajeros = pasajeros;
	}
 
    @Override
    public String toString()
    {
    	return "Viaje: " + num + " Destino: " + des + " Numero pasajeros " + numeroPasajeros;
    }
}

SocketServidor
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class Cabina {
	ServerSocket server;
	Socket socket;
 
    public Cabina() {
    	System.out.println("Inicializando servidor");
 
    	try{
    		server = new ServerSocket(9100);
    		System.out.println("Esperando conexion de aviones");
    		while(true)
    		{
    			socket = server.accept();
    			System.out.println("nuevo avion entrante");
    			ServidorHilo SH = new ServidorHilo(socket);
    			SH.start();
    		}
    	}catch(Exception e){}
	}
 
	public static void main(String a[])
	{
		Cabina c = new Cabina();
	}
}

Socketcliente
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
public class SocketAvion {
	private Socket cliente;
	private OutputStream salida = null;
	private ObjectOutputStream salida1 = null;
	private DataInputStream entrada;
 
    public void conexion() {
    	try{
 
    	cliente = new Socket("127.0.0.1", 9100);
    	Avion a = new Avion(900,"Paris",200);
   	   	System.out.println(a);
 
 
    	salida1 = new ObjectOutputStream(cliente.getOutputStream());
    	entrada = new DataInputStream(cliente.getInputStream());
    	salida1.flush();
    	salida1.reset();
    	//Integer ab = new Integer(4);
 
    	salida1.writeObject(a);
 
    	entrada.close();
        salida1.close();
        cliente.close();
    	}catch(Exception e){
    		System.out.println(e);}
 
    }
 
    public static void main(String a[])
    {
    	SocketAvion sa = new SocketAvion();
    	sa.conexion();
    }
 
}

Hilo servidor
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
public class ServidorHilo extends Thread{
	private Socket socket;
	private PrintStream salida;
	private InputStream entrada;
	private ObjectInputStream entrada1 = null;
 
 
    public ServidorHilo(Socket socket1) {
    	socket = socket1;
    }
 
   @Override
   	public void run()
   	{
   		try{
    		salida = new PrintStream(socket.getOutputStream());
    		entrada1 = new ObjectInputStream(socket.getInputStream());
   			Avion a = (Avion)entrada1.readObject();
			System.out.println(a);
 
 
    	}catch(Exception e){
    		System.out.println(e);}
 
   		desconectar();
   	}
 
 
    public void desconectar() {
        try {
            socket.close();
        } catch (Exception e) {
 
        }
   }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder