在客户端每次readObject()后,都执行:
A a = (A) objectInputStream.readObject();A类就是要传递的类,a则每次都从objectInputStream中read出来的对象得到。
然后再执行a的get方法,如 a.getName();
但结果每次a.getName()都是服务端第一次setName()所set的值。

解决方案 »

  1.   

    ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
    oos.writeObject(obj);obj就是A类的一个实例,每次在服务端writeObject前,执行obj的set方法,
    如:
    第一次 obj.setName("Tom");
    第二次 obj.setName("Petter");
    ...但从客户端得到的只是第一次set的"Tom".
      

  2.   

    第二次 obj 需要重新new
    obj = new A();
    obj.setName("Petter");
    os.writeObject(obj);
      

  3.   

    不用也可以吧 每次都要重新new 好像,,写个试试 待会
      

  4.   

    这个问题找到原因了,应该是第一位所说的,是引用上出了问题,obj在传递之前,是由另一个类传过来的,不应该直接传递obj,应该本地重新将ojb中的内容赋给一个A的对象,而不是简单让a = obj;
    如果用a = obj;则在传递a的时候,应该得到的是obj的地址,传递给客户端每次都从这一个地址上读取,结果当然就不对了。