Problema con Sockets
Publicado por luischo (1 intervención) el 15/09/2011 23:13:06
Hola a todoss
A ver si alguien me puede echar una manita:
Estoy intentando crear dos hilos (servidor) que se comuniquen con dos clientes, cada uno con su socket. Mi problema es al intentar enviar o recibir objetos a través del ObjectInputStream o el ObjectOutputStream.
Mi error es el siguiente:
En el servidor (donde usu1 y usu2 son sockets):
Hilo h1 = new Hilo(usu1, usu2);
Hilo h2 = new Hilo(usu2, usu1);
h1.start();
h2.start();
Cada hilo h tiene lo siguiente:
this.jug1 = jug1;
this.jug2 = jug2;
out1 = new ObjectOutputStream(jug1.getOutputStream());
out2 = new ObjectOutputStream(jug2.getOutputStream());
in1 = new ObjectInputStream(jug1.getInputStream());
public void run() {
try {
System.out.println("Enviando señal para empezar");
out1.write(1);
out1.flush();
System.out.println("Empezando");
System.out.println("paso 1");
while (jug2.isConnected()) {
Mensaje m = (Mensaje) in1.readObject();
System.out.println("paso 2");
out2.writeObject(m);
System.out.println("paso 3");
out2.flush();
}
Y obtengo el siguiente error:
java.io.StreamCorruptedException: invalid type code: AC
at java.io.ObjectInputStream$BlockDataInputStream.readBlockHeader(ObjectInputStream.java:2463)
Buscando por internet decían que el error AC es que tengo duplicado el canal Stream, pero no sé donde, alguien me puede ayudar???
A ver si alguien me puede echar una manita:
Estoy intentando crear dos hilos (servidor) que se comuniquen con dos clientes, cada uno con su socket. Mi problema es al intentar enviar o recibir objetos a través del ObjectInputStream o el ObjectOutputStream.
Mi error es el siguiente:
En el servidor (donde usu1 y usu2 son sockets):
Hilo h1 = new Hilo(usu1, usu2);
Hilo h2 = new Hilo(usu2, usu1);
h1.start();
h2.start();
Cada hilo h tiene lo siguiente:
this.jug1 = jug1;
this.jug2 = jug2;
out1 = new ObjectOutputStream(jug1.getOutputStream());
out2 = new ObjectOutputStream(jug2.getOutputStream());
in1 = new ObjectInputStream(jug1.getInputStream());
public void run() {
try {
System.out.println("Enviando señal para empezar");
out1.write(1);
out1.flush();
System.out.println("Empezando");
System.out.println("paso 1");
while (jug2.isConnected()) {
Mensaje m = (Mensaje) in1.readObject();
System.out.println("paso 2");
out2.writeObject(m);
System.out.println("paso 3");
out2.flush();
}
Y obtengo el siguiente error:
java.io.StreamCorruptedException: invalid type code: AC
at java.io.ObjectInputStream$BlockDataInputStream.readBlockHeader(ObjectInputStream.java:2463)
Buscando por internet decían que el error AC es que tengo duplicado el canal Stream, pero no sé donde, alguien me puede ayudar???
Valora esta pregunta


0