问题描述
java.net.SocketException:Connectionresetatjava.net.SocketInputStream.read(UnknownSource)atjava.io.ObjectInputStream$PeekInputStream.read(UnknownSource)atjava.io.ObjectInputStream$PeekInputStream.readFully(UnknownSource)atjava.io.ObjectInputStream$BlockDataInputStream.readShort(UnknownSource)atjava.io.ObjectInputStream.readStreamHeader(UnknownSource)atjava.io.ObjectInputStream.<init>(UnknownSource)atcom.mytest.server.pojo.InputThread.<init>(InputThread.java:44)atcom.mytest.server.Client.run(Client.java:30)atjava.util.concurrent.ThreadPoolExecutor$Worker.runTask(UnknownSource)atjava.util.concurrent.ThreadPoolExecutor$Worker.run(UnknownSource)atjava.lang.Thread.run(UnknownSource)代码如下:publicInputThread(OutputThreadout,Socketsocket,OutputThreadMapmap){super();this.out=out;this.socket=socket;this.map=map;try{//DataInputStreamobj=newDataInputStream(socket.getInputStream());ois=newObjectInputStream(this.socket.getInputStream());}catch(IOExceptione){System.out.println(ois+"---------------");e.printStackTrace();}}报错行在newObjectInputStream(this.socket.getInputStream())this.socket.getInputStream()这个对象已经取到了但是在new的时候就报错了.方法如果换为注释掉的newDataInputStream就不会报错.
解决方案
解决方案二:
你传输的那个对象序列化了么?
解决方案三:
已经实现序列化了