最近在研究Mina的连接和数据传输。在网上找到些查考后就开始做些例子,从简单的socket连接了解nio原理(现在也只是了解而已),和数据的传输。然后在上手Mina的操作,发现mina确实不错。
但是我发现mina中在没有使用filter的情况下messageReceived(IoSession session, Object message),
message的数据类型是org.apache.mina.common.ByteBuffer,但是现在被IoBuffer个替代了。
原因是:
1.It doesn't provide useful getters and putters such as fill, get/putString,
and get/putAsciiInt() enough.
2.It is difficult to write variable-length data due to its fixed capacity。
IoBuffer中提供了put和get能方便的对数据进行操作这个与DataInputStream和DataOutputStream很相似!
但是我对IoBuffer.putString(CharSequence, CharsetEncoder)的使用不是很了解,所以在对String类型的数据
进行操作的时候卡壳了。
到网上找了很久,我也没搞清楚putString的使用!
我想DataInputStream和DataOutputStream的操作是很方便的,为什么mina就不行?
后来就一点点的试验,果然可以!下面贴出两端代码!
(1)DataOutputStream 发送
ByteArrayOutputStream outputPacket = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(outputPacket);
dos.writeUTF(str);
dos.flush();
byte[] bb=outputPacket.toByteArray();
b.putShort(bb.length);
b.put(bb);
b.flip();
session.write(b);
(2)DataInputStream 读取
IoBuffer buf = (IoBuffer) message;
short len = buf.getShort();
byte[] readByte = new byte[len];
buf.get(readByte);
ByteArrayInputStream bai = new ByteArrayInputStream(readByte);
DataInputStream dis = new DataInputStream(bai);
dis.readUTF();
分享到:
相关推荐
mina的使用初步入门mina的使用初步入门mina的使用初步入门
mina的高级使用,mina文件图片传送,
队列,mina通信的结合实例,4种队列实例,已经mina通讯模块的研究使用
mina2+spring结合实例
该项目是本人真实项目中使用到的mina + spring+struts2 + mybatis框架,里面有详细的注释说明,以及一个完整的接收消息、入库、返回例子。对需要真实项目开发的人员来说,可以直接使用。 另外,如果需要更加详细的...
Apache Mina Server 2.0中文参考手册V1.0,Apache Mina2.0学习笔记(修订版)Apache Mina Server 2.0中文参考手册V1.0,Apache Mina2.0学习笔记(修订版)
如何使用mina框架简化android端TCP通信的开发
apache-mina-2.0.7 用户手册中文随笔翻译
mina框架中socket使用,有服务端和客户端。这是比较完整的项目。希望能给后人点参考
Apache mina中文开发手册,socket开源通信框架
通过使用MINA框架可以可以省下处理底层I/O和线程并发等复杂工作,开发人员能够把更多的精力投入到业务设计和开发当中。MINA框架的应用比较广泛,应用的开源项目有Apache Directory、AsyncWeb、Apache Qpid、QuickFIX...
有丰富的MINA通信软件开发经验,现在已经有成熟的底层框架(结合了反射、DynaBean、Spring等多种技术),可以实现程序自动对上位机和下位机之间的通信协议进行解析,并在国网公司智能电网的大型项目中使用。...
mina中文开发手册.pdf
mina连接,mina心跳连接,mina断线重连。其中客户端可直接用在android上。根据各方参考资料,经过自己的理解弄出来的。CSDN的资源分太难得了。
NULL 博文链接:https://javaeye-hua.iteye.com/blog/1850205
mina-core-2.0.0-M6.jar mina-example-2.0.0-M6.jar mina-filter-codec-netty-2.0.0-M6.jar mina-filter-compression-2.0.0-M6.jar mina-integration-beans-2.0.0-M6.jar mina-integration-jmx-2.0.0-M6.jar mina-...
并根据本人在工程项目中使用的代码,详细讲解了服务器端是客户端实现。实现了json格式的通信、以及文件的上传于下载等功能。图文并茂,以开发者的角度来展示知识的结构。希望对大家有所帮助!!
内含mina服务端所有jar包(客户端只需要使用一部分即可),另外mina中文开发手册.pdf 和MINA开发文档.doc 适合学习mina的人员学习。
里面包含mina2.0的api(英文)和mina自学手册,还有mina的开发指导