mina 框架java服务端的搭建和通信。
2016-06-24 11:35
274 查看
创建Java项目,导入mina包。mina下载地址:http://mina.apache.org/
不会用mina的请各种百度谷歌吧。。
新建MainServer.java类,继承于Thread并实现main函数。
然后就在MainServer类里搭建main结构啦。
类如下:
从上述代码中可见,需要建立一个编解码工厂和一个实现IOHandler接口的实例啦,因为IOHandler接口是负责处理所有业务逻辑的啦。
所谓编解码工厂,就是一个负责在发送数据的最后阶段和接收数据的最开始阶段处理所发送和接收的数据。
比如:服务端发送一段数据是:“数据长度(4字节)+实际数据”,那么接收到数据后就会首先读取4个字节的长度信息验证后面的实际数据有木有这么多。完了再从IoBuffer里解析出来写入ProtocolDecoderOutput里。发送数据也是类似,在session.write("...");发送数据后,会进入ProtocolEncoder实例里对数据经行封装。比如说加密,加压等操作。
java代码:
编码类:
解码类:
2.编码完成后,数据就会交给IOHandler来处理啦,这里可以选择继承IoHandlerAdapter类来写。。
IOHandler接口的几个重要方法介绍:
sessionCreated:一个连接被创建时触发;
sessionOpened:一个连接被打开时触发;
sessionClosed:一个连接被关闭时触发;
exceptionCaught:连接出现异常未被捕获时触发;
messageReceived:连接收到消息时触发。
好了,接下来实现自己的Handler实例:
好了,目前这个没有连接数据库的mina服务端就算是勉强搭建好了,运行一下试试??
和你的客户端勾兑一下,看看有木有勾搭上~~ 哈哈~~
本人新手,也不太熟悉java服务端。。
如果有什么问题,么见怪哈。大家一起探讨,一起研究,一起进步。~~
不会用mina的请各种百度谷歌吧。。
新建MainServer.java类,继承于Thread并实现main函数。
然后就在MainServer类里搭建main结构啦。
类如下:
所谓编解码工厂,就是一个负责在发送数据的最后阶段和接收数据的最开始阶段处理所发送和接收的数据。
比如:服务端发送一段数据是:“数据长度(4字节)+实际数据”,那么接收到数据后就会首先读取4个字节的长度信息验证后面的实际数据有木有这么多。完了再从IoBuffer里解析出来写入ProtocolDecoderOutput里。发送数据也是类似,在session.write("...");发送数据后,会进入ProtocolEncoder实例里对数据经行封装。比如说加密,加压等操作。
java代码:
IOHandler接口的几个重要方法介绍:
sessionCreated:一个连接被创建时触发;
sessionOpened:一个连接被打开时触发;
sessionClosed:一个连接被关闭时触发;
exceptionCaught:连接出现异常未被捕获时触发;
messageReceived:连接收到消息时触发。
好了,接下来实现自己的Handler实例:
和你的客户端勾兑一下,看看有木有勾搭上~~ 哈哈~~
本人新手,也不太熟悉java服务端。。
如果有什么问题,么见怪哈。大家一起探讨,一起研究,一起进步。~~
相关文章推荐
- 解决Error:Execution failed for task ':show_entry:transformResourcesWithMergeJavaResForDebug'. > com.an
- Java_GC详解
- java做的聊天工具
- easyui+mybatis+springmvc构建项目及openshift发布(一)
- 简单三步,教你如何将Xutils3导入eclipse项目当中(附jar包下载地址)
- Spring的Scheme位置
- jacob操作office分享
- JAVA MAVEN POM.XML中关于ANT的配置
- Spring整合Mybatis使用<context:property-placeholder>时的坑
- Java基础之List--常用集合
- Java中的EL和JSTl
- java实现敏感词过滤
- mysql数据库数据改变监控 触发器 游标 new. old. java监控比对 最终是在后端java进行比对
- spring mvc 返回json数据的四种方式
- java 并发编程学习之一 ----synchronized
- Java中时分秒毫秒格式(xx:xx:xx.xxx)转换为整数(毫秒数)
- 待补充:java类里的私有变量问题,在对象A里有一个对象B,调用对象B的方法获取变量,会有短暂的缓存
- 【细说Java】揭开Java的main方法神秘的面纱(转)
- NamingException with message: Name [spring.liveBeansView.mbeanDomain]
- java反射机制