apache mina server 2.0 中文参考手册

apache mina server 2.0 中文参考手册

ID:8229310

大小:414.77 KB

页数:47页

时间:2018-03-11

apache mina server 2.0 中文参考手册_第1页
apache mina server 2.0 中文参考手册_第2页
apache mina server 2.0 中文参考手册_第3页
apache mina server 2.0 中文参考手册_第4页
apache mina server 2.0 中文参考手册_第5页
资源描述:

《apache mina server 2.0 中文参考手册》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、ApacheMinaServer2.0中文参考手册李海峰(((QQ:61673110)))-Andrew830314@163.comApacheMinaServer是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP、UDP/IP协议栈的通信框架(当然,也可以提供JAVA对象的序列化服务、虚拟机管道通信服务等),Mina可以帮助我们快速开发高性能、高扩展性的网络通信应用,Mina提供了事件驱动、异步(Mina的异步IO默认使用的是JAVANIO作为底层支持)操作的编程模型。Mina主要有1.x和2.x两个分支,这里我们讲解最新版本2.0,如果你使用的是Mina

2、1.x,那么可能会有一些功能并不适用。学习本文档,需要你已掌握JAVAIOJAVAIO、JAVANIOJAVAIOJAVANIOJAVANIO、JAVAJAVANIOJAVASocketSocket、JAVASocketJAVAJAVA线程及并发库JAVA线程及并发库(java.util.concurrent(java.util.concurrent.*(java.util.concurrent.*.*.*))))的知识。Mina同时提供了网络通信的Server端、Client端的封装,无论是哪端,Mina在整个网通通信结构中都处于如下的位置:可见Mina的API将真

3、正的网络通信与我们的应用程序隔离开来,你只需要关心你要发送、接收的数据以及你的业务逻辑即可。同样的,无论是哪端,Mina的执行流程如下所示:(1.)IoService:这个接口在一个线程上负责套接字的建立,拥有自己的Selector,监听是否有连接被建立。(2.)IoProcessor:这个接口在另一个线程上负责检查是否有数据在通道上读写,也就是说它也拥有自己的Selector,这是与我们使用JAVANIO编码时的一个不同之处,通常在JAVANIO编码中,我们都是使用一个Selector,也就是不区分IoService与IoProcessor两个功能接口。另外,IoP

4、rocessor负责调用注册在IoService上的过滤器,并在过滤器链之后调用IoHandler。(3.)IoFilter:这个接口定义一组拦截器,这些拦截器可以包括日志输出、黑名单过滤、数据的编码(write方向)与解码(read方向)等功能,其中数据的encode与decode是最为重要的、也是你在使用Mina时最主要关注的地方。(4.)IoHandler:这个接口负责编写业务逻辑,也就是接收、发送数据的地方。_____________________________________________________________________________

5、__1.1.1.简单的TCPServerTCPServer:TCPServer:::(1.)第一步:::编写:编写IoServiceIoServiceIoService按照上面的执行流程,我们首先需要编写IoService,IoService本身既是服务端,又是客户端,我们这里编写服务端,所以使用IoAcceptor实现,由于IoAcceptor是与协议无关的,因为我们要编写TCPServer,所以我们使用IoAcceptor的实现NioSocketAcceptor,实际上底层就是调用java.nio.channels.ServerSocketChannel类。当然,

6、如果你使用了Apache的APR库,那么你可以选择使用AprSocketAcceptor作为TCPServer的实现,据传说ApacheAPR库的性能比JVM自带的本地库高出很多。那么IoProcessor是由指定的IoService内部创建并调用的,我们并不需要关心。publicclassMyServer{mainmain方法main方法::::IoAcceptoracceptor=newNioSocketAcceptor();acceptor.getSessionConfig().setReadBufferSize(2048);acceptor.getSessio

7、nConfig.setIdleTime(IdleStatus.BOTH_IDLE,10);acceptor.bind(newInetSocketAddress(9123));}这段代码我们初始化了服务端的TCP/IP的基于NIO的套接字,然后调用IoSessionConfig设置读取数据的缓冲区大小、读写通道均在10秒内无任何操作就进入空闲状态。(2.)第二步:::编写过滤器:编写过滤器这里我们处理最简单的字符串传输,Mina已经为我们提供了TextLineCodecFactory编解码器工厂来对字符串进行编解码处理。acceptor.getFilt

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。