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.
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


0