今天在练习网络通信发现了这个错误 。。我是很迷茫啊

后来就是随意修改了一下  竟然不报错了、还是学习太少

错误代码(部分)

public void run() {
ObjectInputStream ois = null;
ObjectOutputStream oos = null;
try {
ois = new ObjectInputStream(socket.getInputStream());
oos=new ObjectOutputStream(socket.getOutputStream());
CommandTranser msg = (CommandTranser) ois.readObject();
msg = execute(msg);
//如果登录成功
if(msg.isFlag()){
//如果要发送的用户在线 发送信息
if(SocketList.getSocket(msg.getReceiver())!=null){
oos = new ObjectOutputStream(SocketList.getSocket(msg.getReceiver())
.getOutputStream());
}else{
oos=new ObjectOutputStream(socket.getOutputStream());
msg.setResult("当前用户不在线");
}
}else{
// oos=new ObjectOutputStream(socket.getOutputStream());
}
oos.writeObject(msg);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}


报错显示的位置在oos.wirteObject(msg);

改了好久  想着写细点吧  就又添加了else语句  

oos=new ObjectOutputStream(socket.getOutputStream());

写在else语句里面,竟然过了、

不清楚为什么oos不能多次实例化 不会覆盖吗?

或许是socket机制的问题吧。

马克一下~