关于java.io.EOFException的解决
(2010-11-18 20:56:01)
标签:
javaeofexceptionsocketit |
分类: 编程语言 |
在用到socket发送序列化对象的时候,后台抛出了java.io.EOFException的错误,查找了一些资料,找到解决方法。
我在服务器端用到了objectOutputStream来输出对象序列,客户端用ObjectInputStream来接收对象。
举个例子,假设ObjectOutputStream向客户端输出了十个对象,客户端用一个while循环来不断地接收对象,如:
ObjectInputStream ois = new ObjectInputStream(s.getInputStream());//s是Socket类的对象
while((DataType=(DataType) ois.readObject())!=null)
{
//处理
}
ois对象在正确接收了十个对象后,还会再调用一次readObject(),而此时缓存中已经没有东西可以读取了,于是就会报错。
我的解决方法是,是在服务器端输出十个对象后,接着再输出一个Null,这样客户端在读取到null之后就可以正常跳出while循环,在我的测试中没有报错。
前一篇:大学语录(1)