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
SocketServidor
Socketcliente
Hilo servidor
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


0