加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

关于java.io.EOFException的解决

(2010-11-18 20:56:01)
标签:

java

eofexception

socket

it

分类: 编程语言




在用到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循环,在我的测试中没有报错。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有