Java实现结构体,让字节流封送简单起来
来源:互联网 发布:淘宝面团体育 编辑:程序博客网 时间:2024/06/18 13:04
和C/C++不同,Java中没有结构体,联合体。这是Java作为高级语言的进步,但也使得它在进行网络字节流封送上显得捉襟见肘。
这里所指的是在进行网络编程,串口编程等需要和某些C语言中结构体形式定义的协议接口进行通讯时,Java由于缺乏结构体和字节数组之间的有效转换方法,所带来的编程上的困境。
按照通常的想法,我们需要自己去手动的一个字节,一个字节的拼凑,来实现C语言中结构体定义的数据包。在面对大量接口的时候,这样做显然绝非是可行的办法。造成这个问题的根本原因是,指针这一对内存在字节量级操作的语法特性在Java当中是不成立的。其结果就是在C语言里面通过填充结构体来完成的字节流封送编程变得复杂。
既然这是一个相当普遍的问题,那么一定是有先人尝试去解决过的。事实上却是是这样,通过一番努力,终于发现了JavaStruct和Javolution现成的两个解决方案。我们不妨拿来为我所用。
JavaStruct
http://code.google.com/p/javastruct/wiki/HowToUseJavaStruct
这个实现比较轻量级,POPO的方式,还不支持联合体,但是联合体的问题,在编程中一般是可以避开的。
Javolution
http://javolution.org/
这个类库比较庞大,对结构体和联合体都有支持。
更详细的操作细节,可以参考以上两个链接中给出的内容。有了它们,数据封送在Java中也变得简单起来了,不妨试一下吧。
- Java实现结构体,让字节流封送简单起来
- Java实现结构体,让字节流封送简单起来
- Java实现结构体,让字节流封送简单起来
- vbs让测试简单起来
- java RMI简单实现结构
- java 实现简单树结构
- 让复制构造函数简单起来
- 今目标让生活简单起来
- Extjs 让combobox写起来更简单
- Android ViewPropertyAnimator:让动画变得简单起来!
- Cocos2d-x 让精灵随手指移动起来二(简单实现)
- 获取结构体字节数简单的方法
- java实现简单的IO字节流读写操作
- Java对象与字节工具类简单实现
- JAVA实现简单的堆栈结构
- java实现简单的单链表结构
- 结构体字节对齐
- 结构体字节对齐
- PMD规则之Braces Rules
- 发送邮件的几个函数
- PMD规则之Clone Implementation Rules
- 浏览器对Script下载的非并行处理再说明
- jacob 生成pdf问题
- Java实现结构体,让字节流封送简单起来
- 安装Visual Studio SP1 后生成时出现"FindRibbons"加载失败
- 缓存--自定义缓存依赖、自定义输出缓存、缓存依赖SQL SERVER 2005与2008
- 【字符串】字符串拷贝和长度
- C语言--static
- Session的生命周期(很详细)
- C++虚函数表深度解析
- NSString值为Unicode格式的字符串编码转换成中文编码
- Timestamp和String互转