您的位置:首页 > 编程语言 > Java开发

java.io.StreamCorruptedException: invalid type code: AC异常和对象流锁机制问题

2012-09-11 22:40 801 查看
java.io.StreamCorruptedException: invalid type code: AC
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1356)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at ReaderThread.run(Client.java:43)
at java.lang.Thread.run(Thread.java:619)

百度有人问:http://zhidao.baidu.com/question/250766120.html&__bd_tkn__=77f91e0d303193281e16e733a0bd31bb831d94ad8078338d51fed8133ea5c69d362ad36bb4bcda3b39bb3949f6bbe47087ac3af56e60b1f4e7eb60157a59fd359b61a8fa5e0f03de01252775d530bb0c480192040f5ebaf8d73f330b7c293a2cc8620c463dbdafad9b088daccbdc8d0cc83227f54fad

个人理解:线程通信中对象流在使用时,最好只新建一次,因为对象流特殊,有锁机制



java.io.StreamCorruptedException: invalid type code: AC! 有加哦

  2011-4-10
14:59
提问者: i_know_today | 悬赏分:10 | 浏览次数:2220次

问题补充:
java.io.StreamCorruptedException: invalid type code: AC
在做一个聊天程序的时候,从客户端读取聊天信息后通过ObjectOuputStream写入socket输出流,在服务器端通过socket输入流readObject()读取时抛出异常...
还有就是那个invalid type code: AC有时候是64000,72000这些代码有什么用,代表什么?求高手,求详细解答!


我来帮他解答

  
推荐答案

检举 | 2011-4-10
19:05

你是不是在客户端的一个线程里面同时new了多个ObjectOutputStream流。这在ObjectOutputStream是不允许的,其它的流可以。ObjectOutputStream有锁机制



追问

能不能再详细点呢,谢谢!



回答

就是在同一个线程里面多次用了用了new objectOutputStream(socket.getOutputStream())
把objectOutputStream保存在一个公有变量或静态变量中使用objectOutputStream的都用这个公用管道输出吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息