您现在的位置是:心海E站 > 文案短句 > >正文

mina下载(如何下载Mina所有版本的jar包和源码)

发布时间:2024-01-12 17:50:07 admin 阅读:59

导读一、android上的socket通信的开源框架有哪些 1、请去360手机助手下载android学习手册里面有例子、源码和文档ApacheMINA(MultipurposeInfrastructureforNetworkApplications)是Apache组织一个较新的项目,它为...
一、android上的socket通信的开源框架有哪些

1、请去360手机助手下载android学习手册里面有例子、源码和文档ApacheMINA(MultipurposeInfrastructureforNetworkApplications)是Apache组织一个较新的项目,它为开发高性能和高可用性的网络应用程序提供了非常便利的框架。

2、当前发行的MINA版本支持基于JavaNIO技术的TCP/UDP应用程序开发、串口通讯程序(只在最新的预览版中提供),MINA所支持的功能也在进一步的扩展中。

3、目前正在使用MINA的软件包括有、ApacheDirectoryProject、AsyncWeb、AMQP(AdvancedMessageQueuingProtocol)、RED5Server(MacromediaFlashMediaRTMP)、ObjectRADIUS、Openfire等等。

4、以上是从网上找到的mina框架简单介绍。

5、由于正在开发的项目中要求加入及时通信功能(游戏方面),所以在网上找了好几种框架,像openfire、tigase等都是基于Xmpp协议开发的优秀框架。

6、但这些侧重于消息的推送,不适合游戏上的简单交互。

7、所以后来找到了mina这个框架,顺手搭建起来。

8、接下来就是这几天学习的总结了,文章里面没有涉及到逻辑层的方面,只是简单的实现即时通信功能。

9、资源下载我会放在文章的最后面。

10、相关资源下载(1)Apache官方网站、http、//mina.apache.org/downloads.html(2)Android用jar包(包括官网的资源,我会一律放在百度网盘下)Mina简单配置服务器端一共要用到四个jar包,包括一个日志包。

11、将他们放在lib中,并加载进去分别为mina-core-0.jarslf4j-log4j12-jarslf4j-api-jarlog4j-jar(日志管理包)如果要使用日志的jar包,则要在项目的src目录下新建一个log4j.properties,添加内容如下、log4j.rootCategory=INFO,stdout,Rlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=(QC)%p(%t)%C.%M(%L)|%m%nlog4j.appender.R=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.R.File=D、\Tomcat5\logs\qc.loglog4j.appender.R.layout=org.apache.log4j.PatternLayout1log4j.appender.R.layout.ConversionPattern=%d-(TS)%p%t%c-%m%nlog4j.logger.com.neusoft=DEBUGlog4j.logger.com.opensymphony.oscache=ERRORlog4j.logger.net.sf.navigator=ERRORlog4j.logger.org.apache.commons=ERRORlog4j.logger.org.apache.struts=WARNlog4j.logger.org.displaytag=ERRORlog4j.logger.org.springframework=DEBUGlog4j.logger.com.ibatis.db=WARNlog4j.logger.org.apache.velocity=FATALlog4j.logger.com.canoo.webtest=WARNlog4j.logger.org.hibernate.ps.PreparedStatementCache=WARNlog4j.logger.org.hibernate=DEBUGlog4j.logger.org.logicalcobwebs=WARNlog4j.rootCategory=INFO,stdout,Rlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=(QC)%p(%t)%C.%M(%L)|%m%nlog4j.appender.R=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.R.File=D、\Tomcat5\logs\qc.loglog4j.appender.R.layout=org.apache.log4j.PatternLayout1log4j.appender.R.layout.ConversionPattern=%d-(TS)%p%t%c-%m%nlog4j.logger.com.neusoft=DEBUGlog4j.logger.com.opensymphony.oscache=ERRORlog4j.logger.net.sf.navigator=ERRORlog4j.logger.org.apache.commons=ERRORlog4j.logger.org.apache.struts=WARNlog4j.logger.org.displaytag=ERRORlog4j.logger.org.springframework=DEBUGlog4j.logger.com.ibatis.db=WARNlog4j.logger.org.apache.velocity=FATALlog4j.logger.com.canoo.webtest=WARNlog4j.logger.org.hibernate.ps.PreparedStatementCache=WARNlog4j.logger.org.hibernate=DEBUGlog4j.logger.org.logicalcobwebs=WARNAndroid客户端要加入的jar包、mina-core-0.jarslf4j-android-1-RCjar两个jar包(可能直接使用上面的jar包也会行,我没试过~)Mina服务端我这边使用的是mina0版本,所以可能与mina0的版本有所不同。

12、那么首先在服务器端创建开始新建一个Demo1Server.class文件,里面包含着程序的入口,端口号,Acceptor连接.1publicclassDemo1Server{2//日志类的实现3privatestaticLoggerlogger=Logger.getLogger(Demo1Server.class)4//端口号,要求客户端与服务器端一致5privatestaticintPORT=444467publicstaticvoidmain(String()args){8IoAcceptoracceptor=null9try{10//创建一个非阻塞的server端的Socket11acceptor=newNioSocketAcceptor()12//设置过滤器(使用mina提供的文本换行符编解码器)13acceptor.getFilterChain().addLast("codec",newProtocolCodecFilter(newTextLineCodecFactory(Charset.forName("UTF-8"),LineDelimiter.WINDOWS.getValue(),LineDelimiter.WINDOWS.getValue())))14//自定义的编解码器15//acceptor.getFilterChain().addLast("codec",newProtocolCodecFilter(newCharsetCodecFactory()))16//设置读取数据的换从区大小17acceptor.getSessionConfig().setReadBufferSize(2048)18//读写通道10秒内无操作进入空闲状态19acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE,10)20//为接收器设置管理服务21acceptor.setHandler(newDemo1ServerHandler())22//绑定端口23acceptor.bind(newInetSocketAddress(PORT))2425logger.info("服务器启动成功...端口号未、"+PORT)2627}catch(Exceptione){28logger.error("服务器启动异常...",e)29e.printStackTrace()30}31}3233}一个很简单的程序入口吧,简单的说就是在服务器上设置一个消息接收器,让它监听从端口传过来的消息并进行处理。

13、那么接下来我们看看怎么进行消息处理。

14、新建一个消息处理类,或者说是是业务逻辑处理器——Demo1ServerHandler,它继承了IoHandlerAdapter类,它默认覆盖了七个方法,而我们主要使用messageReceived()。

15、publicclassDemo1ServerHandlerextendsIoHandlerAdapter{publicstaticLoggerlogger=Logger.getLogger(Demo1ServerHandler.class)//从端口接受消息,会响应此方法来对消息进行处理@OverridepublicvoidmessageReceived(IoSessionsession,Objectmessage)throwsException{Stringmsg=message.toString()if("exit".equals(msg)){//如果客户端发来exit,则关闭该连接session.close(true)}//向客户端发送消息Datedate=newDate()session.write(date)logger.info("服务器接受消息成功...")super.messageReceived(session,message)}//向客服端发送消息后会调用此方法@OverridepublicvoidmessageSent(IoSessionsession,Objectmessage)throwsException{logger.info("服务器发送消息成功...")super.messageSent(session,message)}//关闭与客户端的连接时会调用此方法@OverridepublicvoidsessionClosed(IoSessionsession)throwsException{logger.info("服务器与客户端断开连接...")super.sessionClosed(session)}//服务器与客户端创建连接@OverridepublicvoidsessionCreated(IoSessionsession)throwsException{logger.info("服务器与客户端创建连接...")super.sessionCreated(session)}//服务器与客户端连接打开@OverridepublicvoidsessionOpened(IoSessionsession)throwsException{logger.info("服务器与客户端连接打开...")super.sessionOpened(session)}@OverridepublicvoidsessionIdle(IoSessionsession,IdleStatusstatus)throwsException{logger.info("服务器进入空闲状态...")super.sessionIdle(session,status)}@OverridepublicvoidexceptionCaught(IoSessionsession,Throwablecause)throwsException{logger.info("服务器发送异常...")super.exceptionCaught(session,cause)}}很直白的一段程序,相当于将服务器分成了七个状态,而每个状态都有自己的一套逻辑处理方案。

16、至此,一个最简单的Mina服务器框架就搭好了,我们可以使用电脑上的telnet命令来测试一下服务器能否使用cmd控制台—>telnet如我的服务器ip地为110那我就写telnet11044此时我们可以看到输出日志为此时连接已经创建,我们在输入信息服务器就会对信息进行处理,并给出相应的应答。

17、(telnet的用法不知道的可以自行百度)Mina客户端(Android端)服务器简单搭建完毕,那么开始在Android端是配置服务器吧。

18、同样的不要忘记加载jar包,由于Android自带了Logout,所以就不使用Mina的日志包了。

19、由于接受消息会阻塞Android的进程,所以我把它开在子线程中(同时将其放在Service中,让其在后台运行)1publicclassMinaThreadextendsThread{23privateIoSessionsession=null45@Override6publicvoidrun(){7//TODOAuto-generatedmethodstub8Log.d("TEST","客户端链接开始...")9IoConnectorconnector=newNioSocketConnector()10//设置链接超时时间11connector.setConnectTimeoutMillis(30000)12//添加过滤器13//connector.getFilterChain().addLast("codec",newProtocolCodecFilter(newCharsetCodecFactory()))14connector.getFilterChain().addLast("codec",newProtocolCodecFilter(newTextLineCodecFactory(Charset.forName("UTF-8"),LineDelimiter.WINDOWS.getValue(),LineDelimiter.WINDOWS.getValue())))15connector.setHandler(newMinaClientHandler(minaService))1617try{18ConnectFuturefuture=connector.connect(newInetSocketAddress(ConstantUtil.WEB_MATCH_PATH,ConstantUtil.WEB_MATCH_PORT))//创建链接19future.awaitUninterruptibly()//等待连接创建完成20session=future.getSession()//获得session21session.write("start")22}catch(Exceptione){23Log.d("TEST","客户端链接异常...")24}25session.getCloseFuture().awaitUninterruptibly()//等待连接断开26Log.d("TEST","客户端断开...")27connector.dispose()28super.run()29}3031}不知道你们注意到了没,客户端的代码与服务器端的极其相似,不同的是服务器是创建NioSocketAcceptor对象,而客户端是创建NioSocketConnect对象。

20、当然同样需要添加编码解码过滤器和业务逻辑过滤器。

21、业务逻辑过滤器代码、1publicclassMinaClientHandlerextendsIoHandlerAdapter{234@Override5publicvoidexceptionCaught(IoSessionsession,Throwablecause)6throwsException{7Log.d("TEST","客户端发生异常")8super.exceptionCaught(session,cause)9}1011@Override12publicvoidmessageReceived(IoSessionsession,Objectmessage)13throwsException{14Stringmsg=message.toString()15Log.d("TEST","客户端接收到的信息为、"+msg)16super.messageReceived(session,message)17}1819@Override20publicvoidmessageSent(IoSessionsession,Objectmessage)throwsException{21//TODOAuto-generatedmethodstub22super.messageSent(session,message)23}24}方法功能与服务器端一样。

22、测试这里就不做了。

23、可以的话自己写个Demo效果更好Mina的更多功能拿到所有客户端SessionCollectionsessions=session.getService().getManagedSessions().values()自定义编码解码器,可以对消息进行预处理。

24、要继承ProtocolEncoder和ProtocolDecode类。

25、数据对象的传递这些功能不便放在这里讲了,可能我会以后再找机会另开一篇来讲述这些功能~,大家可以浏览结尾处的参考文章来加深对mina的理解。

26、在我认为,熟悉和快速使用一个新的的框架可以看出一个程序员的水平,同样及时总结和归纳自己学到的新知识也是一个好的程序员该具有的习惯。

27、那么Mina的简单搭建就到这里为止了,希望对大家有所帮助。

二、mina 源码解析(1)

1、mina是一款网络应用框架,它是基于javanio的通讯框架,提供抽象的事件驱动异步的api。

2、mina基本架构、大致上分为三层IoSerivce,Filter,Handler首先我们来看一下Filter前面说过,mina是基于事件驱动的,所以我们先来看一下mina定义了那些事件、IoEventType类中定义了如下枚举变量、这些事件对于用户使用者来说无需关心。

3、以上IoEventType仅是事件的类型(事件的属性),mina对于事件是通过IoEvent对象进行封装的。

4、来看一下IoEvent都有哪些方法、我们看到IoEvent实现了Runnable,也就是说这个对象会交给多线程去执行run方法。

5、在run方法中我们看到执行的是fire(),也就是具体的任务了。

6、下面来看一下fire中做的事情,首先看以下IoEvent中具体做了哪些事情,再看一下其子类IoFilterEvent又做了哪些事情。

7、后面我会讲IoFilterEvent的作用是什么,在哪里用到。

8、其实做的事情就是触发(调用)session下filterchain的对应事件类型的方法。

9、IoFilterEvent是IoEvent的子类,从名字就可以看出来,其与IoFilter有一定的关系,所以IoFilterEvent是由IoFilter产生的事件。

10、而IoFilter产生的事件有什么特性呢?在此插入IoFilter与IoFilterChain的介绍。

11、IoFilter是拦截处理事件的过滤器,如同servlet的filter。

12、它可以用于很多目的、日志记录,性能测量,认证等等。

13、而filterchain即代表一串IoFilter的链子,其有多个IoFilter组成。

14、事实上,在IoFilterChain中,封装了一层Entry,每个Entry中封装了当前的IoFilter和下一个IoFilter的引用。

15、可以看到Entry的接口如下NextFilter顾名思义,即下一个IoFilter,为什么需要有这么一个接口呢?事实上,我们可以想象,nextFilter是用来触发下一个Iofilter的,其并不是IoFilter,在IoFilter中,我们可以看到这样的调用说完了IoFilter,IoFilterChain,那与IoFilterEvent有什么关系呢?因为是IoFilter产生的事件,当触发这个事件时,由于链式的特征,该事件将触发当前IoFilter以后的Filter,所以我们看到,IoFilterfire()的实现其实就是调用下一个filter的对应的事件方法、也可以这样理解,一个事件的产生,产生地就是头,事件从当前头向链后传播。

16、IoEvent做的是从chain的开头往后传播,IoFilterEvent是由当前IoFilter产生往后传播。

17、说完了IoFilter,来探讨一下如何将IoFilter组装成IoFilterChain、其实里面的结构就是链表。

18、来看看chain中add的内容、。

三、哪里能下载韩国人MINA(米拿)唱的《随心所欲》这首歌?

1、mina是一款网络应用框架,它是基于javanio的通讯框架,提供抽象的事件驱动异步的api。

四、entp_ftp-1.0.jar怎么用

1、通过ApacheFtpServer实现,依赖以下jar包、commons-net-ftp-0.jarftpserver-core-0.jarlog4j-jarmina-core-0.jarslf4j-api-jarslf4j-log4j12-jar资源下载地址http、//download.csdn.net/detail/smile3670/8508525。

五、【资源】《夜访吸血鬼》吹替rafile下载[MINA中秋节快乐~~]【平田广明吧】

1、《梦幻岛》加上这个就是吾辈送给MINA的中秋节礼物了哦~~MINA中秋节快乐~~http、//www.rayfile.com/files/6469990f-c61d-11df-b759-0015c55db73d/URL、fs2you、//Y2FjaGVmaWxlMzIucmF5ZmlsZS5jb20vemgtY24vZG93bmxvYWQvZmFjYjE5Y2YxYjE1YWYxNjNlYmUwZWE5MTlkNTg0OTAvJUU1JUE0JTlDJUU4JUFFJUJGJUU1JTkwJUI4JUU4JUExJTgwJUU5JUFDJUJDJTVCJUU2JUIwJUI0JUU1JThEJUIwJTVELmF2aXw1MzkxNjcwMDQ=&&&未经授权请勿随意转载如需转载请联系吧主或者楼主(就是吾辈啦)&&&。

2、回复、2楼sf~~~~。

5、小鱼辛苦了~~~中秋节快乐。

7、~~~(你说很多遍了喂。

10、)。

11、回复、5楼哎呀插楼了我自重。

12、回复、6楼木有关系。

13、辛苦啦~~~下载中。

14、55555555555我爱你们。

27、哈哈~~~全部抱走了~~谢谢亲了,找了好久的说!!开心得要死~~啦啦。

28、感激涕零!!!!。

29、为什么--我下不了~。

30、115的下载不了么?具体什么情况?。

31、自插双目--~!我没有看到115的~~~RF的下不了。

六、mina 源码解析(1)

1、mina是一款网络应用框架,它是基于javanio的通讯框架,提供抽象的事件驱动异步的api。

2、mina基本架构、大致上分为三层IoSerivce,Filter,Handler首先我们来看一下Filter前面说过,mina是基于事件驱动的,所以我们先来看一下mina定义了那些事件、IoEventType类中定义了如下枚举变量、这些事件对于用户使用者来说无需关心。

3、以上IoEventType仅是事件的类型(事件的属性),mina对于事件是通过IoEvent对象进行封装的。

4、来看一下IoEvent都有哪些方法、我们看到IoEvent实现了Runnable,也就是说这个对象会交给多线程去执行run方法。

5、在run方法中我们看到执行的是fire(),也就是具体的任务了。

6、下面来看一下fire中做的事情,首先看以下IoEvent中具体做了哪些事情,再看一下其子类IoFilterEvent又做了哪些事情。

7、后面我会讲IoFilterEvent的作用是什么,在哪里用到。

8、其实做的事情就是触发(调用)session下filterchain的对应事件类型的方法。

9、IoFilterEvent是IoEvent的子类,从名字就可以看出来,其与IoFilter有一定的关系,所以IoFilterEvent是由IoFilter产生的事件。

10、而IoFilter产生的事件有什么特性呢?在此插入IoFilter与IoFilterChain的介绍。

11、IoFilter是拦截处理事件的过滤器,如同servlet的filter。

12、它可以用于很多目的、日志记录,性能测量,认证等等。

13、而filterchain即代表一串IoFilter的链子,其有多个IoFilter组成。

14、事实上,在IoFilterChain中,封装了一层Entry,每个Entry中封装了当前的IoFilter和下一个IoFilter的引用。

15、可以看到Entry的接口如下NextFilter顾名思义,即下一个IoFilter,为什么需要有这么一个接口呢?事实上,我们可以想象,nextFilter是用来触发下一个Iofilter的,其并不是IoFilter,在IoFilter中,我们可以看到这样的调用说完了IoFilter,IoFilterChain,那与IoFilterEvent有什么关系呢?因为是IoFilter产生的事件,当触发这个事件时,由于链式的特征,该事件将触发当前IoFilter以后的Filter,所以我们看到,IoFilterfire()的实现其实就是调用下一个filter的对应的事件方法、也可以这样理解,一个事件的产生,产生地就是头,事件从当前头向链后传播。

16、IoEvent做的是从chain的开头往后传播,IoFilterEvent是由当前IoFilter产生往后传播。

17、说完了IoFilter,来探讨一下如何将IoFilter组装成IoFilterChain、其实里面的结构就是链表。

18、来看看chain中add的内容、。

七、org.apache.mina.core.buffer.iobuffer在哪个jar包

1、mina心跳机制ieRequestisResponse到底什么时候调用上下文设置、服务器端基于Mina开发,心跳包25秒发一次0D+0A,客户端收到后,回0D-0A因为客户端设置了60秒一次心跳包,所以心跳包有服务器端先发起。

2、客户端心跳过滤器代码、。

八、跪求Mina《电话情缘》现场白衣版本的高清下载地址!

1、MINA-孝野、巧局喊http、//www.mtv1com/download.asp?id=25592&dp=1http、//zxdy.mtv1com/mv/060306/mina-Thephonecall现场版.wmv?12403245811902x1185682865x12403250139184-167a469e3cf80d16537ce222021529e2。

九、如何下载Mina所有版本的jar包和源码

1、访问Mina页面说明:浏览器直接输入地址。

2、进入Mina页面。

3、下载MINA最新版本打开首页上显示的是最新版本,目前是0.点击‘Mina0.13’,右侧显示相关的下载选择下载内容,点击进行下载。

4、查看历史版本页面往下拉,看到‘Olderversionscanbefound here’点击‘here’。

5、历史版本列表其中0.7以后的版本,在mina下面。

6、下载历史版本以下载0.12为示例,先点击‘0.12’,然后进入文件下载列表,选择源码和jar下载。。

下一篇:没有了 上一篇:火炬之光2怎么联网玩(火炬之光2如何联机)