`
aijuans8
  • 浏览: 188507 次
社区版块
存档分类
最新评论

Apache MINA实战之 对象传输

 
阅读更多

本文链接:http://blog.csdn.net/kongxx/article/details/7520599

利用Apache MINA来传递对象,这对了MINA来说非常容易,并且这也是Java网络编程中很常用的应用。其实对于MINA传递对象来说,如果看过前一篇文章的话,只要在其中做少许改动就可以实现对象传递,但这里考虑到例子的完整性,还是给出了全部代码示例。

首先看两个用来传递的Java对象MyRequestObject和MyResponseObject,很简单只是实现了Serializable接口罢了。

看看Server端的代码

1. 首先创建I/O Service,这里使用的是NioSocketAcceptor类来创建了一个IoAcceptor实例。

2. 创建I/O Filter Chain,这里使用了两个个IoFilter,一个是LoggingFilter用来记录日志和打印事件消息,另一个是ProtocolCodecFilter实例用来编码数据,这里使用了ObjectSerializationCodecFactory类来序列化或反序列化数据成java对象。

3. 创建I/O Handler,这里主要看一下messageReceived方法,其总接收了MyRequestObject对象,然后又发送了一个MyResponseObject对象给Client端。

4. 最后就是让IoAcceptor类实例绑定端口实现监听。


看看Client端的代码

1. 首先创建I/O Service,这里使用的是NioSocketConnector类来创建了一个IoConnector实例,并设置连接超时为10秒。

2. 创建I/O Filter Chain,和服务器端同样设置了两个IoFilter,一个是LoggingFilter用来记录日志和打印事件消息,另一个是ProtocolCodecFilter实例用来编码数据,这里也使用了ObjectSerializationCodecFactory类来序列化或反序列化数据成java对象。

3. 创建I/O Handler,主要看一下sessionOpened方法,其中在会话建立事件中发送了MyRequestObject对象,然后在messageReceived方法中又接受了MyResponseObject对象。

4. 最后就是IoConnector实例类连接远端的Server。


下面测试一下上面的程序,首先运行MyServer类,然后运行MyClient类,就可以分别在各自的终端上看到事件日志以及发送/接收的对象了。






分享到:
评论

相关推荐

    apache Mina的完整学习资料

    Apache Mina的核心理念是提供一个与传输协议无关的抽象层,开发者可以通过它来开发基于TCP/IP、UDP或其他网络协议的应用。Mina简化了网络编程的复杂性,使得开发者可以专注于业务逻辑,而无需关注底层通信细节。 在...

    Apache Mina 入门Demo

    2. **IoSession接口**:Mina的核心概念之一是IoSession,它代表了客户端和服务器之间的连接。IoSession提供了读写数据、管理连接状态、注册事件监听器等功能。 3. **Filter链机制**:Mina采用了过滤器链设计模式,...

    Apache Mina Server 2.0 抢鲜体验

    4. **IoFilter**:过滤器机制是Mina的另一个亮点,它允许在数据传输前对其进行预处理,或在传输后进行后处理。开发者可以自定义过滤器来实现数据编码、解码、安全加密等功能,提高了代码的复用性和模块化。 5. **...

    Apache MINA 2.0 用户指南( 缺第一章节)

    ### Apache MINA 2.0 用户指南:基础知识 #### 基础概念介绍 Apache MINA 2.0 是一款高性能且易于使用的网络应用程序框架,它简化了开发人员在网络编程方面的负担,允许开发者专注于应用程序的核心功能,而不是底层...

    apache-mina-2.0.7 含官方教程

    MINA支持多种传输协议,如TCP/IP、UDP/IP和SSL/TLS等,以及各种传输层之上的协议,例如HTTP、FTP、SMTP等。它在Java平台上运行,但通过Java NIO(非阻塞I/O)提供服务,从而实现高效的并发处理能力。 标签"mina ...

    Apache_Mina.rar

    通过提供的"Apache_Mina.rar"压缩包,你将获得一系列关于Apache Mina的学习资料,包括教程文档、示例代码、实战项目等,这些资料可以帮助你从零开始学习和深入理解这个强大的网络通信框架。在学习过程中,你可以先从...

    Apache_Mina_Server_2.0_V1.0.rar_apache_apache中文手册_mina

    Apache Mina 是一款高度可扩展的网络通信框架,主要由 Apache 软件基金会开发,广泛应用于构建高性能、高效率的网络服务器。本手册“Apache Mina Server 2.0中文参考手册V1.0”提供了对 Mina 2.0 版本的详细解析,...

    Apache_Mina_Server_2.0V1.0.rar_mina

    2. **过滤器链**:Mina的过滤器链是其核心特性之一,它允许开发者在数据传输过程中添加自定义处理逻辑。每个过滤器可以执行特定的任务,如数据编码解码、安全加密或性能统计,而整个链的组合则形成了完整的处理流程...

    Apache_Mina_Server_2.0.rar_mina

    Apache MINA(Multipurpose Infrastructure for Network Applications)是一个高性能、异步事件驱动的网络应用程序框架,主要用于简化开发高质量的网络服务。这个框架适用于多种协议,如TCP/IP和UDP/IP,广泛应用于...

    Apache_Mina_Server_ 深入教程

    Apache Mina Server 深入教程 Apache Mina是一个开源项目,它提供了一个高度可扩展且性能优秀的网络通信框架,广泛应用于开发各种网络服务,如TCP/IP、UDP、HTTP等协议的服务端应用。本教程将深入探讨Apache Mina ...

    Apache_Mina_Server_ 深入教程V1.0

    Apache Mina Server 深入教程V1.0是一份详尽的指南,旨在帮助开发者深入理解并有效地利用Apache Mina构建高性能、可扩展的网络应用程序。Apache Mina(Model-View-Controller for Network Applications)是一个Java...

    ftpserver mina框架,适合学习

    Apache Mina FTPServer是一个基于Apache Mina框架的轻量级FTP服务器实现,它为开发者提供了构建自定义FTP服务器的能力。这个框架非常适合初学者学习,因为它提供了清晰的结构和丰富的文档,帮助理解网络通信和FTP...

    MINA_API+MINA_DOC+mina

    MINA (Java IO Network ...总的来说,这个压缩包为初学者提供了一套完整的MINA学习资源,涵盖了理论知识、API详解和实战指导,有助于开发者快速入门并精通MINA框架,从而在实际工作中实现高效、稳定的网络通信应用。

    mina2+spring结合实例

    《Mina2与Spring整合应用实战》 在Java开发领域,Apache Mina和Spring框架的结合使用能够构建高效、可扩展的网络应用。Mina2作为一个轻量级的网络通信框架,提供了高度抽象的API,使得开发者可以方便地处理网络I/O...

    Mina in Action preview

    7. **实战应用**:通过实际项目示例,展示如何将Mina应用于Web服务器、聊天服务器、文件传输服务等不同场景。 8. **源码分析**:对于对技术有深入研究的读者,书中可能涉及到Mina的源码分析,帮助理解其内部工作...

    mina 应用

    MINA(Mina)是一个由Apache软件基金会开发的网络通信框架,主要用于构建高性能、高可用性的网络服务器。MINA的名字来源于“Multi-purpose Infrastructure for Network Applications”,它提供了一套抽象层,使得...

    Mina官方教程_中文版.rar

    五、Mina实战应用 在实际项目中,Mina常被用于构建高性能的聊天服务器、文件传输服务、在线游戏服务器等。其高性能、低延迟的特性尤其适用于需要大量并发连接的场景。 六、Mina与其他技术的集成 Mina可以轻松地与...

    mina学习资料--很实用

    Apache Mina是一个开源框架,主要用于构建高性能、高可用性的网络应用程序。它主要关注网络通信的I/O层,为开发者提供了一种简洁的方式来处理TCP/IP、UDP等协议的网络通信。在Java开发领域,Mina因其高效和灵活的...

    mina TCP、UDP通讯

    mina是Apache软件基金会的一个开源项目,它提供了一个高性能、异步事件驱动的网络应用框架,主要用于简化TCP和UDP的网络编程。mina不仅适用于Java开发者,而且由于其跨平台性,也被广泛应用于其他语言的开发中。在...

    mina培训资料

    总的来说,《mina培训资料》不仅提供了理论知识,还辅以实战案例,是学习和精通Apache Mina的宝贵资源。通过这份资料,开发者不仅可以掌握Mina框架,还能提升网络编程和系统设计的能力,为构建高效率、高可用性的...

Global site tag (gtag.js) - Google Analytics