非常痛苦的一个问题~~

问题描述

各位大侠....小弟想用Mina做一个文件传输的东东....但有关于这方面的资料太少了..希望有这方面资料的朋友发给实例到我的邮箱1563300160@qq.com谢谢啦...或者给个意见或提议也行~

解决方案

解决方案二:
Mina又是什么?
解决方案三:
英文稍微好的话,去apache主页上看看,源码,jar包,示例代码,doc一应俱全mina是搞socket短连接/长连接的一些东西,简短点可以这么说。。。
解决方案四:
没有人有吗???我想要个实例...或者知道怎么实现的人说一下思路
解决方案五:
没有接触过Mina,帮楼主顶一下吧。
解决方案六:
该回复于2010-12-03 11:53:07被版主删除
解决方案七:
我整理的资料希望对你有帮助:1。所需要的包:slf4j-api.jar、slf4j-jdk14.jar、MINA-core-2.0.0-M1.jar。2。MINA框架简介MINA(MultipurposeInfrastructureforNetworkApplications)是用于开发高性能和高可用性的网络应用程序的基础框架。通过使用MINA框架可以可以省下处理底层I/O和线程并发等复杂工作,开发人员能够把更多的精力投入到业务设计和开发当中。MINA框架的应用比较广泛,应用的开源项目有ApacheDirectory、AsyncWeb、ApacheQpid、QuickFIX/J、Openfire、SubEthaSTMP、red5等。MINA框架当前稳定版本是1.1.6,最新的2.0版本目前已经发布了M1版本。MINA框架的特点有:基于javaNIO类库开发;采用非阻塞方式的异步传输;事件驱动;支持批量数据传输;支持TCP、UDP协议;控制反转的设计模式(支持Spring);采用优雅的松耦合架构;可灵活的加载过滤器机制;单元测试更容易实现;可自定义线程的数量,以提高运行于多处理器上的性能;采用回调的方式完成调用,线程的使用更容易。2.MINA框架的常用类类NioSocketAcceptor用于创建服务端监听;类NioSocketConnector用于创建客户端连接;类IoSession用来保存会话属性和发送消息;类IoHandlerAdapter用于定义业务逻辑,常用的方法有:方法定义sessionCreated()当会话创建时被触发sessionOpened()当会话开始时被触发sessionClosed()当会话关闭时被触发sessionIdle()当会话空闲时被触发exceptionCaught()当接口中其他方法抛出异常未被捕获时触发此方法messageRecieved()当接收到消息后被触发messageSent()当发送消息后被触发3.服务端应用开发示例下面将以MINA2.0M1版本为基础,通过一个范例来演示一下如何使用MINA框架进行开发。开发环境为jdk6.0,开发工具NetBeans6.0,所需jar包slf4j-api.jar、slf4j-jdk14.jar、MINA-core-2.0.0-M1.jar。首先定义一个业务逻辑处理器TimeServerHandler,继承自IoHandlerAdapter,实现的功能有:当客户端创建会话时会显示客户端设备的IP和端口;当客户端输入quit时结束会话;客户端输入其它内容时则向客户端发送当前时间。代码如下:publicclassTimeServerHandlerextendsIoHandlerAdapter{@OverridepublicvoidsessionCreated(IoSessionsession){//显示客户端的ip和端口System.out.println(session.getRemoteAddress().toString());}@OverridepublicvoidmessageReceived(IoSessionsession,Objectmessage)throwsException{Stringstr=message.toString();if(str.trim().equalsIgnoreCase("quit")){session.close();//结束会话return;}Datedate=newDate();session.write(date.toString());//返回当前时间的字符串System.out.println("Messagewritten...");}}再定义一个类MinaTimeServer用来启动服务端:publicclassMinaTimeServer{privatestaticfinalintPORT=9123;//定义监听端口publicstaticvoidmain(String[]args)throwsIOException{IoAcceptoracceptor=newNioSocketAcceptor();acceptor.getFilterChain().addLast("logger",newLoggingFilter());acceptor.getFilterChain().addLast("codec",newProtocolCodecFilter(newTextLineCodecFactory(Charset.forName("UTF-8"))));//指定编码过滤器acceptor.setHandler(newTimeServerHandler());//指定业务逻辑处理器acceptor.setDefaultLocalAddress(newInetSocketAddress(PORT));//设置端口号acceptor.bind();//启动监听}}4.测试首先运行MinaTimeServer,启动服务端,接着在命令行运行“telnet127.0.0.19123”,来登录,这时会看到服务端输出如下:2008-2-2116:15:29org.apache.MINA.filter.logging.LogLevel$4log/10.64.2.137:4140?IP和端口号信息:CREATED2008-2-2116:15:29org.apache.MINA.filter.logging.LogLevel$4log信息:OPENED在客户端输入回车,在客户端可以看到服务端返回当前的时间:ThuFeb2116:20:14CST2008服务端输出:2008-2-2116:20:14org.apache.MINA.filter.logging.LogLevel$4log信息:RECEIVED:HeapBuffer[pos=0lim=2cap=2048:0D0A]?接收收到回车符Messagewritten...2008-2-2116:20:14org.apache.MINA.filter.logging.LogLevel$4log信息:SENT:HeapBuffer[pos=0lim=29cap=30:546875204665622032312031363A3230...]2008-2-2116:20:14org.apache.MINA.filter.logging.LogLevel$4log信息:SENT:HeapBuffer[pos=0lim=0cap=0:empty]5.客户端开发示例首先定义类TimeClientHandler来处理消息接收事件:classTimeClientHandlerextendsIoHandlerAdapter{publicTimeClientHandler(){}@OverridepublicvoidmessageReceived(IoSessionsession,Objectmessage)throwsException{System.out.println(message);//显示接收到的消息}}接着定义MinaTimeClient类用于连接服务端,并向服务端发送消息:publicclassMinaTimeClient{publicstaticvoidmain(String[]args){//创建客户端连接器.NioSocketConnectorconnector=newNioSocketConnector();connector.getFilterChain().addLast("logger",newLoggingFilter());connector.getFilterChain().addLast("codec",newProtocolCodecFilter(newTextLineCodecFactory(Charset.forName("UTF-8"))));//设置编码过滤器connector.setConnectTimeout(30);connector.setHandler(newTimeClientHandler());//设置事件处理器ConnectFuturecf=connector.connect(newInetSocketAddress("127.0.0.1",9123));//建立连接cf.awaitUninterruptibly();//等待连接创建完成cf.getSession().write("hello");//发送消息cf.getSession().write("quit");//发送消息cf.getSession().getCloseFuture().awaitUninterruptibly();//等待连接断开connector.dispose();}}5.mina的深层理解I/O服务:I/O服务用来执行实际的I/O操作。ApacheMINA已经提供了一系列支持不同协议的I/O服务,如TCP/IP、UDP/IP、串口和虚拟机内部的管道等。开发人员也可以实现自己的I/O服务。I/O过滤器:I/O服务能够传输的是字节流,而上层应用需要的是特定的对象与数据结构。I/O过滤器用来完成这两者之间的转换。I/O过滤器的另外一个重要作用是对输入输出的数据进行处理,满足横切的需求。多个I/O过滤器串联起来,形成I/O过滤器链。I/O处理器:I/O处理器用来执行具体的业务逻辑。对接收到的消息执行特定的处理。创建一个完整的基于ApacheMINA的网络应用,需要分别构建这三个层次。ApacheMINA已经为I/O服务和I/O过滤器提供了不少的实现,因此这两个层次在大多数情况下可以使用已有的实现。I/O处理器由于是与具体的业务相关的,一般来说都是需要自己来实现的。事件驱动的APIApacheMINA提供的是事件驱动的API。它把与网络相关的各种活动抽象成事件。网络应用只需要对其感兴趣的事件进行处理即可。事件驱动的API使得基于ApacheMINA开发网络应用变得比较简单。应用不需要考虑与底层传输相关的具体细节,而只需要处理抽象的I/O事件。比如在实现一个服务端应用的时候,如果有新的连接进来,I/O服务会产生sessionOpened这样一个事件。如果该应用需要在有连接打开的时候,执行某些特定的操作,只需要在I/O处理器中此事件处理方法sessionOpened中添加相应的代码即可。在介绍ApacheMINA中的基本概念的细节之前,首先通过一个简单的应用来熟悉上面提到的三个层次的具体职责。
解决方案八:
学习下。。
解决方案九:
JAVA开发两年第一次听说Mina

时间: 2024-10-25 00:33:03

非常痛苦的一个问题~~的相关文章

志刚对话王微:一个不停赶路的追梦人

李志刚工作室和凤凰科技联合制作的企业家视频访谈节目:创业记-志刚和他的朋友们5月12日在凤凰网上线,这是对话全文. 他是一个文艺青年,也是一个连续创业者.离开土豆之后,39岁的王微选择了再次创业.这些年来,王微经历了怎样的心路历程?他和他的追光动画将走向何方?商业作家李志刚对话王微,聊聊创业那点事. 导视:文艺青年的再次创业 解说:他是一个文艺青年,也是一个创业者.曾写下细腻的文字.发表小说,也曾去不同的国家,登山.骑行. 王微:知道你自己,这是最难的一件事情. 解说:2005年春天,上海衡山路

设计师需要知道的10个锦囊妙计

原来做标题党是这种感觉,哈哈哈. 这期的话题是设计和沟通,这个话题实在是太大了,大概6个人坐在一起聊上三天三夜也还有说不完的吧.为此,我们打算把话题约束下,变成"PM(产品经理)和设计师的沟通". 考虑到不同的人之间的沟通的方式会差异很大(也正是因为有这种差异,我们才把沟通叫做一种艺术),我们先研究下沟通的主体,PM 和设计师,而在座的都是设计师,互相研究也不是太好,我们就重点研究PM吧,反正他们不在场,说他们坏话他们也不知道  PM 的意思是产品经理,一般来说,岗位职责是对整个产品负

卢聪:浅谈SEO行业垂直发展

  SEO行业已经在中国走过了几个年头了,从最初的局部发展到现在的覆盖进步,更多的从业者甚至是创业者进入这个行业.无疑在未来的2-3年,SEO将进入一个繁荣巅峰时期.当然随着而来的就是行业洗牌,到那时估计就不是纯粹的SEO,由其衍生出的东西现在谁也不知道.当可以肯定的是,SEO逐步走向行业垂直发展.那今天笔者就说说SEO应行业垂直发展. 先来解释下行业垂直发展,笔者就按自己的理解来解释下SEO行业的垂直发展,就是SEO依附于现实行业产业的存在,逐步把SEO行业转变为行业SEO,也就是由多样的SE

五个立刻实施的Windows组策略选项

  在Windows Server 2008的功能集合里面添加了新的组策略选项(GPPs).在这样一篇文章中,可能不必解释GPPs是什么以及它们是如何工作的,重要的是这些"可选的(如果您想要这样的话)"的配置项目是如何实际地帮助Windows域解决问题的. 考虑到这一点,让我们来看看那五个必须实现的组策略选项.一旦您明白了它们能做什么,您一定会发现,它们非常适合您的环境. 用户配置 | 因特网设置 第一个设置可能是到目前为止最痛苦的一个集中设置.基于其原始的界面以及完全的成功需要客户能

三年0故障总结,提升代码质量的秘诀

该文章来自于阿里巴巴技术协会(ATA)精选文章. 个人经历 对我代码质量影响最大的是在一家外资企业,在这家公司我觉得有以下几个方面做的很不错. 团队编码风格统一 统一到什么程度? 不看代码作者,你很难区分代码是谁写的(在目前公司一些团队也能达到这个标准). 个人观点: 这样做有什么好处?团队中每个人阅读代码都很容易,减少很多沟通,维护成本( 代码阅读的次数远远大于变更的次数),并且心情非常愉悦.有人肯定觉得愉悦有点夸张,举个栗子: 有一些代码,如果不是由于与工作内容有关联,你是否有种这辈子都不情

三个月学习SEO我是如何喜欢上它的

摘要: 一转眼从事seo就已经三个月了,这三个月有喜有忧,悲喜交加.现在我就给大家分享搞seo三个月,我是如何喜欢上它的. 第一个月: 第一个月可以说最痛苦的一个月,因为什么都不懂 一转眼从事seo就已经三个月了,这三个月有喜有忧,悲喜交加.现在我就给大家分享搞seo三个月,我是如何喜欢上它的. 第一个月:第一个月可以说最痛苦的一个月,因为什么都不懂,之前没有接触过这行业的东西,万事开头难,为了生活,既然选择了这个行业就应该学好它.一开始我的任务是学习做网站:主要包括了最近本的如何开空间,数据库

DRC,为什么我们要走最难的路

作者:天羽 我一直深信,"不是因为有了机会才争取,而是因为争取了才有机会:不是因为会了才去做,而是因为做了才能会:不是因为拥有了才付出,而是因为付出了才拥有!" DRC是什么? DRC(Data Replication Center)是阿里技术保障-数据库技术团队自主研发的数据流产品,支持异构数据库实时同步,数据记录变更订阅服务.为跨域实时同步.实时增量分发.异地双活.分布式数据库等场景提供产品级的解决方案.DRC在阿里服务了数万个实时通道,在刚刚过去的2015双11,DRC峰值每秒解

[转载] 为什么全球最好的大学大半在美国?看看美国的孩子是怎么念书的

[转载]本文来自:http://blog.csdn.net/xinshen1860/article/details/8123744   前言:    文章对中美高等教育状况做了较深刻的描述,有助于纠正国内大学生错误的认知与学习观念,我们可以从中吸取很多经验,不仅仅局限于学习,更可以感受到他们的态度与方法,文章对于在校大学生(本科生和研究生)的指导意义很大,请广大同学耐心的读下去,认真体会其中的经验.欢迎各位转载,共建高校正常的学习氛围!(PS:我国的大学学习氛围要先变正常,然后才能追求良好)  

[译] 虚拟现实是如何改变用户体验的:从原型到设备的设计

本文讲的是[译] 虚拟现实是如何改变用户体验的:从原型到设备的设计, 原文地址:How VR Is Changing UX: From Prototyping To Device Design 原文作者:Justinmind 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m- 译者:Lai 校对者:halloween Larry 虚拟现实是如何改变用户体验的:从原型到设备的设计 虚拟现实(VR)正在不断改变着我们定义用户体验(UX)的方式,但是一条经久不变的原则