转: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
- ConnectFuture connFuture = connector.connect(new InetSocketAddress("192.168.0.1", 12315));//发生连接异常时该行不会抛异常
- connFuture.awaitUninterruptibly(1000);//如果不加这句,则连接异常时getSession()并不会抛异常,获得的SESSION为NULL
- IoSession session = connFuture.getSession();//取SESSION的时候才抛异常
未解之谜
MINA的连接是长连接,这在服务器或客户端通讯中断exceptionCaught能捕获异常可以知道。我们也就不需要对客户端长连接再做心跳包的处理。不过不明白connector.setConnectTimeout(1);这个方法到底有什么作用???
IDLE
1.1.7版本中,session可以直接设置idle时间;
2.0中需要如下代码设置idle时间:session.getConfig().setBothIdleTime(5);
相关推荐
Apache Mina作为网络通信库,其设计目标是提供高效、稳定的通信机制,但因为TCP协议本身的特性,不可避免地会遇到断包和粘包的问题。为了解决这些问题,Mina提供了一些内置机制,如缓冲区管理和自定义编码解码器。 ...
8. **社区支持**:MINA作为一个成熟的开源项目,拥有活跃的社区和丰富的文档,遇到问题时可以获得及时的帮助。 9. **安全性**:MINA可以与其他安全库(如SSL/TLS)集成,确保数据在传输过程中的安全性。 10. **...
对于初学者来说,理解和编写自定义的编解码器可能会遇到一些挑战。本文将深入探讨mina编解码器的工作原理,提供一个典型编解码器的示例,并解析其代码。 1. **mina框架基础** - Mina提供了一个高效的、事件驱动的...
当我们遇到"MINA断线重连死锁解决"的问题时,通常涉及到的是网络连接的稳定性和并发处理的复杂性。 MINA框架提供了非阻塞I/O模型,允许处理大量并发连接。然而,在某些情况下,特别是在断线重连的机制中,可能会...
同时,这些示例也提供了实际操作的机会,便于开发者在遇到问题时进行调试和改进。 通过深入研究这些示例,开发者不仅可以掌握Mina的基本用法,还能了解到如何利用其高级特性优化网络应用,提升系统性能。对于希望...
- **调试技巧**:提供了调试Mina应用程序的一些建议和技巧,帮助开发者解决实际开发过程中遇到的问题。 #### Chapter 14 - StateMachine(状态机) - **状态机设计**:介绍了如何利用状态机模式优化Mina应用程序的...
文档还可能包含详细的API参考,示例代码,以及常见问题解答,以帮助开发者快速上手并解决遇到的问题。 MINA广泛应用于各种网络应用,例如聊天服务器、游戏服务器、数据传输服务等。通过深入理解MINA框架,开发者...
3. 处理异常:如果在解码过程中遇到错误,应通过`exceptionCaught()`方法捕获并处理,避免影响整个网络服务的稳定性。 在`mina src`压缩包中,可能包含MINA框架的源代码,你可以通过阅读这些源码来深入理解MINA的...
本教程将深入探讨如何在Android项目中集成MINA框架,以及如何解决在实际开发中可能遇到的问题,如中文乱码和消息接收不全等问题。 1. **MINA框架基础** - MINA的核心是其异步事件驱动模型,它允许开发者通过回调...
本实例主要关注的是Mina在处理网络通信时遇到的两个常见问题——“断包”和“粘包”。 1. **断包**: 当数据在网络中传输时,可能会因为各种原因(如网络拥塞、数据包大小限制等)被分割成多个部分,这些部分在...
在Android 2.2上运行Mina时,可能会遇到线程安全问题。由于Android系统对线程池的限制,Mina的默认线程模型可能无法正常工作。为解决此问题,你需要自定义线程池,确保线程的创建和管理符合Android的规范,避免内存...
在实际应用中,如果遇到“down”问题,可能涉及网络中断、资源耗尽或代码错误,需要进行故障排查,检查日志、网络连接和代码逻辑。 5. **mina_apache_down**和**mina_tcp**标签:这些标签可能是为了标记与Apache ...
7. **完善的文档与社区支持**:MINA2有详细的用户手册和开发者指南,以及活跃的社区支持,帮助开发者解决在实际开发中遇到的问题。 结合“资料_MINA(第三部分)”这个文件,我们可以深入学习MINA2的高级用法、优化...
在Android应用中,如果一个设备同时开启多个连接,可能会遇到端口冲突的问题。Mina框架允许配置不同的端口,以确保每个连接使用独立的通信通道,从而避免端口占用冲突。 5. **MinaClientDemo项目** 提供的`...
开发者可以在社区中寻求帮助,分享经验,共同解决遇到的问题,推动项目的持续发展。 总的来说,Apache Mina是一个强大的工具,它简化了网络编程的复杂性,让开发者能够更加专注于业务逻辑,而不需要深入理解底层...
通过分析和运行这个项目,开发者可以深入理解MINA在Android上的实际应用,并学习如何解决实际开发中遇到的各种问题。 总结起来,Android平台上的MINA框架提供了一套强大的网络通信解决方案,能够帮助开发者快速、...
Apache MINA(Multipurpose Infrastructure for Network Applications)是一个Java框架,专为开发高性能和高可用性的网络应用程序而设计。MINA提供了高度可扩展的、事件驱动的网络应用编程接口(API),支持多种传输...
本文将详细解析“从Github检出Mina(maven)项目出现问题解决过程”的主题,帮助开发者们理解和处理类似的问题。 首先,Mina是一个高性能、轻量级的网络通信框架,常用于构建网络应用,如服务器和客户端。它提供了...
MINA作为一个活跃的开源项目,拥有丰富的社区资源和文档,开发者可以在遇到问题时寻求帮助。同时,定期的版本更新通常会带来新的功能和性能改进,确保MINA能够适应不断变化的网络环境和技术需求。 总之,"mina-...
调试过程中,可能会遇到如串口权限问题、数据格式错误、通信超时等常见问题。解决这些问题通常需要检查代码逻辑、配置参数以及硬件连接是否正常。此外,使用一些串口调试工具,如Putty或Termite,可以帮助我们更好地...