Java - Problema con sockets

   
Vista:

Problema con sockets

Publicado por Nitrous (4 intervenciones) el 26/05/2008 11:22:01
Hola, estoy haciendo una aplicacion estilo messenger y me pasa una cosa muy extraña, en el servidor tengo un objeto tipo Contacto (creado por mi e implementa la interfaz serializable) en el que se almacena la informacion del contacto (email, nick, estado...).

Cuando el cliente modifica su estado o su nick le pasa un objecto Contacto al servidor para que modifique su objeto, haciendo uso de un ObjectInputStream y ObjectOutputStream.

El problema es el siguiente: la primera modificacion que le mando lo hace bien, recibe bien el mensaje (que esta compuesto por un codigo y por un objeto Contacto) sobreescribe su variable Usuario (asi se llama el objeto) y el estado se cambia perfectamente en el servidor, pero la siguiente vez y sucesivas que le mando una modificacion, el mensaje se construye correctamente con los nuevos valores de Usuario pero al llegar al servidor y sacar el objeto Contacto estan los mismos valores que la primera vez, es decir, si por ejemplo cambio el estado a Ausente la primera vez a partir de ahi siempre recibira la informacion de Usuario con estado Ausente y mismo Nick y demas, modifique lo que modifique.

He hecho mil comprobaciones y en el cliente si se modifica la variable Usuario perfectamente, el mensaje se construye bien pero al llegar al servidor recibe los datos anteriores. He intentando vaciando el stream de escritura con flush depues de enviar pero tampoco me tira.

A ver si me podeis echar una mano, un saludo.
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

RE:Problema con sockets

Publicado por novisima  (8 intervenciones) el 28/05/2008 06:07:32
Estás seguro de estar usando el mismo socket, que el servidor lo lee, de que estás limpiando el socket, de que fuerzas la salida del socket, que se lo notificas y todas esas pekeñas cosas q siempre dan problemas? :S

Sólo se me ocurre eso, a ver si te sirve de algo.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con sockets

Publicado por Nitrous (4 intervenciones) el 29/05/2008 16:32:02
He hecho miles de pruebas. Veras la comunicacion la hago como sigue: tengo una clase Mensaje que es la que se envia por el socket, que tiene como datos un codigo, una clase de tipo Contacto y le meti tambien una marca de tiempo para ver que el mensaje recibido era el correcto y no el anterior.

Entonces, la primera vez que mandaba un mensaje, me llegaba correctamente, codigo bien, marca bien y instancia de la clase Contacto con los datos correctos. Pero al enviar el siguiente mensaje llegaba codigo bien y marca de tiempo bien pero la instancia Contacto recibo la primera que envie, en todos los envios que hago a partir de la primera vez.

Cualquier dato que incluya en el mensaje se envia correctamente, pero la instancia de la clase Contacto no. Tambien he probado al escribir en el socket limpiarlo con flush( ) pero tampoco da resultado, en cambio, si envio la instancia Contacto por separado sin incluirla en la clase Mensaje me la envia perfectamente.

No se cual sera el problema, al final tendre que optar por hacer esto ultimo que he dicho para enviar todo correcto.

Un saludo y gracias por tu respuesta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar