`

转 mina 遇到的问题

    博客分类:
  • mina
阅读更多

    转:http://littcai.iteye.com/blog/227476

 

  • Socket服务器在启动是检测到端口被绑定的话会抛出java.net.BindException:Address already in use: JVM_Bind;而MINA不会
  • 客户端在调用connect方法时,如果连接主机或端口失败,并不会抛出任何异常,跟踪MINA源码可知,实际调用的是AbstractPollingIoConnector类的connect0方法,该方法在发生连接异常时创建了一个failedFuture并返回。只有在客户端实际调用connFuture.getSession();时才会抛出RuntimeIoException异常。
    • 在断网(即网络不通)的情况下,抛出java.net.NoRouteToHostException: No route to host
    • 如果连接不到主机或端口并且设置了中断等待时间的情况下,抛出java.net.ConnectException: Connection refused
    • 如果连接不到主机或端口并且未设置了中断等待时间的情况下,不抛出异常,此时获得的session为NULL
    • 如果能连接到主机对应端口,但是未设置awaitUninterruptibly();此时获得的session也为NULL
Java代码  收藏代码
  1. ConnectFuture connFuture = connector.connect(new InetSocketAddress("192.168.0.1"12315));//发生连接异常时该行不会抛异常  
  2. connFuture.awaitUninterruptibly(1000);//如果不加这句,则连接异常时getSession()并不会抛异常,获得的SESSION为NULL  
  3. IoSession session = connFuture.getSession();//取SESSION的时候才抛异常    

 

 未解之谜

MINA的连接是长连接,这在服务器或客户端通讯中断exceptionCaught能捕获异常可以知道。我们也就不需要对客户端长连接再做心跳包的处理。不过不明白connector.setConnectTimeout(1);这个方法到底有什么作用???

 

  IDLE

1.1.7版本中,session可以直接设置idle时间;

2.0中需要如下代码设置idle时间:session.getConfig().setBothIdleTime(5);

分享到:
评论

相关推荐

    mina 断包,粘包问题解决

    Apache Mina作为网络通信库,其设计目标是提供高效、稳定的通信机制,但因为TCP协议本身的特性,不可避免地会遇到断包和粘包的问题。为了解决这些问题,Mina提供了一些内置机制,如缓冲区管理和自定义编码解码器。 ...

    给予mina 协议进行大数据传输

    8. **社区支持**:MINA作为一个成熟的开源项目,拥有活跃的社区和丰富的文档,遇到问题时可以获得及时的帮助。 9. **安全性**:MINA可以与其他安全库(如SSL/TLS)集成,确保数据在传输过程中的安全性。 10. **...

    mina自定义编解码器详解

    对于初学者来说,理解和编写自定义的编解码器可能会遇到一些挑战。本文将深入探讨mina编解码器的工作原理,提供一个典型编解码器的示例,并解析其代码。 1. **mina框架基础** - Mina提供了一个高效的、事件驱动的...

    MINA断线重连死锁解决

    当我们遇到"MINA断线重连死锁解决"的问题时,通常涉及到的是网络连接的稳定性和并发处理的复杂性。 MINA框架提供了非阻塞I/O模型,允许处理大量并发连接。然而,在某些情况下,特别是在断线重连的机制中,可能会...

    Mina 1.1.7 示例源码(apache.mina.example)

    同时,这些示例也提供了实际操作的机会,便于开发者在遇到问题时进行调试和改进。 通过深入研究这些示例,开发者不仅可以掌握Mina的基本用法,还能了解到如何利用其高级特性优化网络应用,提升系统性能。对于希望...

    Mina2中文文档

    - **调试技巧**:提供了调试Mina应用程序的一些建议和技巧,帮助开发者解决实际开发过程中遇到的问题。 #### Chapter 14 - StateMachine(状态机) - **状态机设计**:介绍了如何利用状态机模式优化Mina应用程序的...

    mina文档说明书

    文档还可能包含详细的API参考,示例代码,以及常见问题解答,以帮助开发者快速上手并解决遇到的问题。 MINA广泛应用于各种网络应用,例如聊天服务器、游戏服务器、数据传输服务等。通过深入理解MINA框架,开发者...

    MINA 协议解码过滤器

    3. 处理异常:如果在解码过程中遇到错误,应通过`exceptionCaught()`方法捕获并处理,避免影响整个网络服务的稳定性。 在`mina src`压缩包中,可能包含MINA框架的源代码,你可以通过阅读这些源码来深入理解MINA的...

    基于Android开发MINA框架使用详解

    本教程将深入探讨如何在Android项目中集成MINA框架,以及如何解决在实际开发中可能遇到的问题,如中文乱码和消息接收不全等问题。 1. **MINA框架基础** - MINA的核心是其异步事件驱动模型,它允许开发者通过回调...

    Mina断包,粘包处理(完整实例,有客户端,服务端)

    本实例主要关注的是Mina在处理网络通信时遇到的两个常见问题——“断包”和“粘包”。 1. **断包**: 当数据在网络中传输时,可能会因为各种原因(如网络拥塞、数据包大小限制等)被分割成多个部分,这些部分在...

    Android2.2配合Mina时,出现的问题及完美解决方案

    在Android 2.2上运行Mina时,可能会遇到线程安全问题。由于Android系统对线程池的限制,Mina的默认线程模型可能无法正常工作。为解决此问题,你需要自定义线程池,确保线程的创建和管理符合Android的规范,避免内存...

    apache-mina-2.0.4.rar_Mina框架_SerialAddress_mina_mina apache down

    在实际应用中,如果遇到“down”问题,可能涉及网络中断、资源耗尽或代码错误,需要进行故障排查,检查日志、网络连接和代码逻辑。 5. **mina_apache_down**和**mina_tcp**标签:这些标签可能是为了标记与Apache ...

    mina2核心框架

    7. **完善的文档与社区支持**:MINA2有详细的用户手册和开发者指南,以及活跃的社区支持,帮助开发者解决在实际开发中遇到的问题。 结合“资料_MINA(第三部分)”这个文件,我们可以深入学习MINA2的高级用法、优化...

    Android Mina框架使用

    在Android应用中,如果一个设备同时开启多个连接,可能会遇到端口冲突的问题。Mina框架允许配置不同的端口,以确保每个连接使用独立的通信通道,从而避免端口占用冲突。 5. **MinaClientDemo项目** 提供的`...

    Apache Mina帮助文档

    开发者可以在社区中寻求帮助,分享经验,共同解决遇到的问题,推动项目的持续发展。 总的来说,Apache Mina是一个强大的工具,它简化了网络编程的复杂性,让开发者能够更加专注于业务逻辑,而不需要深入理解底层...

    Android平台MINA框架使用详细解析

    通过分析和运行这个项目,开发者可以深入理解MINA在Android上的实际应用,并学习如何解决实际开发中遇到的各种问题。 总结起来,Android平台上的MINA框架提供了一套强大的网络通信解决方案,能够帮助开发者快速、...

    mina发布所有jar包

    Apache MINA(Multipurpose Infrastructure for Network Applications)是一个Java框架,专为开发高性能和高可用性的网络应用程序而设计。MINA提供了高度可扩展的、事件驱动的网络应用编程接口(API),支持多种传输...

    从Github检出Mina(maven)项目出现问题解决过程

    本文将详细解析“从Github检出Mina(maven)项目出现问题解决过程”的主题,帮助开发者们理解和处理类似的问题。 首先,Mina是一个高性能、轻量级的网络通信框架,常用于构建网络应用,如服务器和客户端。它提供了...

    mina-http-2.0.7.jar.zip_mina_mina 获取POST_mina-http_mina-http-2.0

    MINA作为一个活跃的开源项目,拥有丰富的社区资源和文档,开发者可以在遇到问题时寻求帮助。同时,定期的版本更新通常会带来新的功能和性能改进,确保MINA能够适应不断变化的网络环境和技术需求。 总之,"mina-...

    mina串口通讯

    调试过程中,可能会遇到如串口权限问题、数据格式错误、通信超时等常见问题。解决这些问题通常需要检查代码逻辑、配置参数以及硬件连接是否正常。此外,使用一些串口调试工具,如Putty或Termite,可以帮助我们更好地...

Global site tag (gtag.js) - Google Analytics