java.io.ObjectInputStream$PeekInputStream.readFully(Unknown Source) 可能的问题

来源:互联网 发布:java 杭州 编辑:程序博客网 时间:2024/06/05 02:05

在一个socket通信里,实现了OutputStream和ObjectOutputStream同步发信息给服务器。

                                                Socket socket = new Socket();
socket.connect(new InetSocketAddress("183.218.184.250", 56),5000);
OutputStream os = socket.getOutputStream();
os.write("您好,您收到了来自客户端的消息!\n".getBytes("GBK"));
//ops.flush();
Log.i("ops","已发送");
Thread.sleep(1000);
handler.post(runnableUi);
ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
while (isRun) {
coordinate coor = new coordinate();
oos.writeObject(coor);
os.flush();
Log.i("connectServer", "消息已发送");
Thread.sleep(2000);
}

遇到java.io.EOFException

at java.io.ObjectInputStream$PeekInputStream.readFully(Unknown Source)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(Unknown Source)
at java.io.ObjectInputStream$PeekInputStream.readFully(Unknown Source)
最后发现是因为OutputStream是底层流,在使用时不能close,如果close,必然使以后使用它的嵌套流无法使用底层流。