packet = (Packet)in.readObject();出现下列异常,请高手指点
java.io.StreamCorruptedException at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1301) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324) at server.ClientRecvThread.run(ClientRecvThread.java:35)
//Packet类
public class Packet implements Serializable
{
  private  String message = null;
  public Packet()
  {  }
  public Packet(String msg)
  {
    this.message = msg;
  }
  private void writeObject(ObjectOutputStream out) throws IOException
  {
    out.defaultWriteObject();
    out.writeObject(getMessage());  }
  private void readObject(ObjectInputStream in) throws IOException,ClassNotFoundException
  {
    in.defaultReadObject();
    setMessage((String)in.readObject());  }
   public void setMessage(String msg)
  {
    this.message = msg;
  }
  public String getMessage()
  {
    return this.message;
  }}//线程类
public class ClientRecvThread  extends Thread
{
  Socket socket = null;
  ClientApplet frame  = null;  public ClientRecvThread(Socket socket,ClientApplet frame)
  {
    this.socket = socket;
    this.frame = frame;
  }
  public void run() {
    System.out.println("ClientThread start");Packet  packet = new Packet();
         String inputLine;
         try {
            ObjectInputStream in = new ObjectInputStream(socket.getInputStream());             while (true) {
                 //if (inputLine.equalsIgnoreCase("quit")) break;
                 packet = (Packet)in.readObject();
                 frame.appendMessage(packet.getMessage() + "\n");
             }         }
         catch (Exception ex) {
             ex.printStackTrace();
         }
         finally {
   //          close();
         }
     }  public void close()
  {
    try
    {
      socket.close();
    }
    catch(Exception ex)
    {
      ex.printStackTrace(System.err);
    }
  }
}