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);
}
}
}
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);
}
}
}
我当时就是换了jdk版本就ok了