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)
个人理解:线程通信中对象流在使用时,最好只新建一次,因为对象流特殊,有锁机制
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的都用这个公用管道输出吧。