网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>JAVA>>新手入门>>基础入门>查看文档  
  java程序开发小经验 - 使用objectstream会出现的问题     
  文章作者:未知  文章来源:水木森林  
  查看:72次  录入:管理员--2007-11-17  
 
  1. objectinputstream与objectoutputstream的顺序问题
在网络通讯中,主机与客户端若使用objectinputstream与objectoutputstream建立对象通讯,必须注意声明此两个对象的顺序。
如:
主机端先建立objectinputstream后建立objectoutputstream,则对应地客户端要先建立objectoutputstream后建立objectinputstream,否则会造成两方互相等待数据而导致死锁。
原因是建立objectinputstream对象是需要先接收一定的header数据,接收到这些数据之前会处于阻塞状态。以下为java api文档的说明
creates an objectinputstream that reads from the specified inputstream.
a serialization stream header is read from the stream and verified.
this constructor will block until the corresponding objectoutputstream
has written and flushed the header.

故而为了防止这种死锁状态,通讯两方的objectinputstraem,objectoutputstream必须注意顺序对应使用。

2. objectinputstream接收到非objectoutputstream数据的问题
在使用objectinputstream与objectoutputstream对象通讯的通讯双方,假设客户端程序出现错误,发送了非objectoutputstream封装发送的数据(比如发送一个数字或字符串到主机),则主机端的objectinputstream接收到错误数据后不能自动纠正,会一直接收数据而处于阻塞状态,从而导致通讯失败。尚未找到解决方法。目前想的办法为写自己的objectstream类。

3. 解决版本问题
使用objectstream的时候会额外发送一个关于对象的序列号
static final long serialversionuid = ....
手动加入此域则可避免版本差异导致的问题。
对象序列号的计算可用sdk的serialver计算。
 
 
上一篇: java继续革命    下一篇: java程序破解天意商务系统后台帐号
  相关文档
应该知道的10件关于java 6的事情 11-17
在jbuilder9上使用struts1.1的实现 11-17
scjp笔记 11-17
使用db4o对象数据库进行简单持久化 11-17
浅析应用服务器 11-17
java编程进阶 关于java编程中的jdbc的介绍 04-14
解决jspsmartupload下载的中文问题 11-17
java开发工具包 11-17
对等(p2p)计算实际使用之发展历史回顾 11-17
java对jpeg图片进行处理 11-17
jforum 2.1.7 源程序编译草记 11-17
jxta技术与应用发展 11-17
hibernate初体验cat之快速上手 11-16
向 midp2.0 窗体加入自定义项目 11-17
jdbc和hibernate来写入blob型数据 11-17
关于apache axis2的web service消息 11-17
巧用jbuilderx代码美化工具 11-17
java中的bitset 11-17
connectionmanager适应多数据库环境 11-17
java打印程序设计 11-17
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息