1、问题
public void run()
{
try {
while(isStart)
{
synchronized(this)
{
wait();
}
if(object!=null)
{
System.out.println(object.getType());
oos.writeObject(object);
oos.flush();
}
if(oos!=null)
oos.close();
//if(socket!=null)
//socket.close();
}
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
publci void run(){}方法中的写消息出现错误,抛出的错误是Socket closed。检查发现并没有关闭Socket连接,不知为何?
java.net.SocketException: Socket closed
at java.net.SocketOutputStream.socketWrite(Unknown Source)at java.net.SocketOutputStream.write(Unknown Source)
at java.io.ObjectOutputStream$BlockDataOutputStream.drain(Unknown Source)
at java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode(Unknown Source)
at java.io.ObjectOutputStream.writeNonProxyDesc(Unknown Source)
at java.io.ObjectOutputStream.writeClassDesc(Unknown Source)LOGIN
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeFatalException(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at OutputThread.run(OutputThread.java:52)