




免费预览已结束,剩余5页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Apache MINA 2.0 快速入门 1。介绍Apache MINA 是一个网络应用框架,有助于用户非常方便地开发高性能、高伸缩性的网络应用。它通过Java NIO提供了一个抽象的、事件驱动的、异步的位于各种传输协议(如TCP/IP和UDP/IP)之上的API,Apache MINA 通常可被称之为:NIO 框架库;客户端/服务器框架库;或者一个网络socket库。然而,它所提供的功能远不止这些。(以上内容大致翻译自Apache MINA网站)如期官方文档的介绍,Apache MINA 是一个网络应用程序框架,它对Java中的socket和NIO进行了有效和清晰的封装,方便开发人员开发TCP/UDP程序,从而抛开在使用原始的socket时需要考虑的各种繁杂而又烦人问题(线程、性能、会话等),把更多精力专著在应用中的业务逻辑的开发上。Apache MINA 有两个主要版本:2.0 和 1.1,2.0与1.1有较大的区别,其采用java NIO进行开发,使得性能得到有效的提升,在接口方面也有不小的变化,具体信息可以参见其网站说明。下面的介绍以 Apache MINA 2.0 为例。2。软件准备要编写和运行一个基于Apache MINA 2.0的程序,需要JDK 5.0以上版本,还需要以下软件:(1)MINA 2.x Core下载地址:/downloads.html(2)SLF4J 1.3.0 or greater下载地址:/download.html这里需要用到两个 SLF4J 的jar包:slf4j-api.jar 和 slf4j-jdk14.jar。分别解压下载的MINA 2.x Core 和SLF4J文件,找出下列jar包文件:mina-core-2.0.0-M1.jarslf4j-api.jarslf4j-jdk14.jar3。编写一个Apache MINA 时间服务器该程序的功能非常简单,就是当客户端连接到服务器的9123端口后,程序将服务器当前的时间信息以字符串的形式发送给客户端。我们可以用Eclipse来创建编写这个程序。(1)在Eclipse中创建一个Java项目,例如 TimeServerProject,然后将mina-core-2.0.0-M1.jar、slf4j-api.jar 和 slf4j-jdk14.jar这三个文件添加到项目的Libraries中。(2)创建一个 MinaTimeServer 类,其内容为:import java.io.IOException;import .InetSocketAddress;import java.nio.charset.Charset;import mon.IdleStatus;import mon.IoAcceptor;import org.apache.mina.filter.codec.ProtocolCodecFilter;import org.apache.mina.filter.codec.textline.TextLineCodecFactory;import org.apache.mina.filter.logging.LoggingFilter;import org.apache.mina.transport.socket.nio.NioSocketAcceptor;public class MinaTimeServer private static final int PORT = 9123;public static void main(String args) throws IOException IoAcceptor acceptor = new NioSocketAcceptor(); acceptor.getFilterChain().addLast(logger, new LoggingFilter(); acceptor.getFilterChain().addLast( codec, new ProtocolCodecFilter(new TextLineCodecFactory(Charset .forName(UTF-8); acceptor.setHandler(new TimeServerHandler(); acceptor.getSessionConfig().setReadBufferSize(2048); acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 10); acceptor.bind(new InetSocketAddress(PORT);(3)创建一个 TimeServerHandler 类,其内容为:import java.util.Date;import mon.IdleStatus;import mon.IoHandlerAdapter;import mon.IoSession;public class TimeServerHandler extends IoHandlerAdapter Overridepublic void exceptionCaught(IoSession session, Throwable cause) throws Exception cause.printStackTrace();Overridepublic void messageReceived(IoSession session, Object message) throws Exception String str = message.toString(); System.out.println(Message read:); System.out.println(str); Date date = new Date(); session.write(date.toString(); System.out.println(Message written.); session.close();Overridepublic void sessionIdle(IoSession session, IdleStatus status) throws Exception System.out.println(IDLE + session.getIdleCount(status);(4)编译并运行MinaTimeServer类(5)打开您的浏览器,在地址栏中输入 :9123/,然后回车,你就可以看到服务器的时间显示在您的浏览器内了。同时您也可以在运行MinaTimeServer的控制台窗口中看到类似下面的信息:Message read:2008-4-11 12:22:44 org.apache.mina.filter.logging.LogLevel$4 log信息: CREATED2008-4-11 12:22:44 org.apache.mina.filter.logging.LogLevel$4 log信息: OPENED2008-4-11 12:22:44 org.apache.mina.filter.logging.LogLevel$4 log信息: RECEIVED: HeapBufferpos=0 lim=261 cap=2048: 47 45 54 20 2F 20 48 54 54 50 2F 31 2E 31 0D 0A.GET / HTTP/1.1Message written.Message read:Accept: */*Message written.Message read:Accept-Language: zh-cn,en-US;q=0.5Message written.Message read:UA-CPU: x86Message written.Message read:Accept-Encoding: gzip, deflateMessage written.Message read:User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727)Message written.Message read:Host: :9123Message written.Message read:Connection: Keep-AliveMessage written.Message read:Message written.2008-4-11 12:22:44 org.apache.mina.filter.logging.LogLevel$4 log信息: SENT: HeapBufferpos=0 lim=29 cap=30: 46 72 69 20 41 70 72 20 31 31 20 31 32 3A 32 32.2008-4-11 12:22:44 org.apache.mina.filter.logging.LogLevel$4 log
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 演讲课件制作
- 2025内蒙古赤峰林西中国电信招聘营业员20人笔试参考题库附带答案详解
- 小学生贫血课件
- 溶液配置与管理课件
- 湿疹护理查房课件
- 2025年汉中市汽车运输集团有限公司招聘(48人)笔试参考题库附带答案详解
- 湘教版饮食与健康课件
- 湖泊管理课件模板
- 湖南中级市政工程课件
- 小学生课件认秋葵
- 2025河南行政执法资格考试模拟卷(含答案)
- 2025招商新检及成员公司招聘(53人)笔试参考题库附带答案详解
- 会-解盾构区间施工测量监理实施细则(终)
- 乒乓球赛程编排方法
- FZ∕T 63013-2021 涤纶长丝织带
- (高清正版)JJF(浙)1090—2014薄片千分尺校准规范
- 支气管扩张-ppt课件
- 上海正高级教师职务任职资格申请表
- 装饰工程资金使用计划、保障方案及成本控制
- 供应商沟通函管理办法
- 最新系统FMEA—(SFMEA)
评论
0/150
提交评论