invalid type code: AC异常
原创
©著作权归作者所有:来自51CTO博客作者scx_white的原创作品,请联系作者获取转载授权,否则将追究法律责任
今天在练习网络通信发现了这个错误 。。我是很迷茫啊
后来就是随意修改了一下 竟然不报错了、还是学习太少
错误代码(部分)
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机制的问题吧。
马克一下~